Estoy usando SQL Server 2005. Tengo una tabla con una columna de texto y tengo muchas filas en la tabla donde el valor de esta columna no es nulo, pero está vacío. Intentar comparar con '' produce esta respuesta:
Los tipos de datos text y varchar son incompatibles en el operador no igual a.
¿Existe una función especial para determinar si el valor de una columna de texto no es nulo sino vacío?
Respuestas:
fuente
OR mytextfield IS NULL
cuándo puede ser su columnaNULL
mytextfield IS NULL *OR*
:-)fuente
En realidad, solo tienes que usar el operador LIKE.
fuente
Para obtener solo valores vacíos (y no valores nulos):
Para obtener valores nulos y vacíos:
Para obtener solo valores nulos:
Para obtener valores distintos de nulo y vacío:
Y recuerde usar frases LIKE solo cuando sea necesario porque degradarán el rendimiento en comparación con otros tipos de búsquedas.
fuente
myColumn IS NOT NULL AND my column = '';
?Use el operador IS NULL:
fuente
fuente
SQL SELECT * FROM TABLE WHERE IFNULL(FIELD, '')=''
Sé que esta publicación es antigua, pero me pareció útil.
No resolvió mi problema de devolver el registro con un campo de texto no vacío, así que pensé en agregar mi solución.
Esta es la cláusula where que funcionó para mí.
fuente
Utilice el método DATALENGTH , por ejemplo:
fuente
Probaría contra SUBSTRING (textColumn, 0, 1)
fuente
¿Son nulos y una cadena vacía equivalente? Si lo son, incluiría la lógica en mi aplicación (¿o tal vez un disparador si la aplicación está "lista para usar"?) Para forzar que el campo sea nulo o '', pero no el otro. Si seleccionó '', también podría establecer la columna como NO NULL. Solo una cuestión de limpieza de datos.
fuente
Quería que se mostrara un texto predefinido ("No hay laboratorios disponibles") si el valor era nulo o vacío y mi amigo me ayudó con esto:
fuente
Tienes que hacer las dos cosas:
SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''
fuente
Sé que hay muchas respuestas con alternativas a este problema, pero me gustaría reunir lo que encontré como la mejor solución de @Eric Z Beard y @Tim Cooper con @Enrique Garcia y @Uli Köhler.
Si es necesario para lidiar con el hecho de que solo espacio podría ser lo mismo que vacío en su escenario de caso de uso, porque la consulta a continuación devolverá 1, no 0.
Por lo tanto, iría por algo como:
fuente
prueba esto:
espero ayudarte!
fuente
En lugar de usar el
isnull
uso acase
, debido al rendimiento, es mejor el caso.En su problema, debe hacer esto:
Código como este:
fuente
fuente