sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo verificar si no es nulo y no es una cadena vacía en el servidor SQL?

Si solo desea hacer coincidir "" como una cadena vacía

WHERE DATALENGTH(COLUMN) > 0 

Si desea contar cualquier cadena que consista completamente en espacios como vacía

WHERE COLUMN <> '' 

Ambos no devolverán NULL valores cuando se usa en un WHERE cláusula. Como NULL se evaluará como UNKNOWN para estos en lugar de TRUE .

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

INSERT INTO T 
VALUES      ('A'), 
            (''),
            ('    '), 
            (NULL); 

SELECT * 
FROM   T 
WHERE  C <> ''

Devuelve solo la fila única A . Es decir. Las filas con NULL o una cadena vacía o una cadena que consiste completamente en espacios están todos excluidos por esta consulta.

SQL Fiddle