Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como verificar a string não é nula e não está vazia no servidor SQL?


Se você deseja apenas corresponder "" como uma string vazia
WHERE DATALENGTH(COLUMN) > 0 

Se você quiser contar qualquer string consistindo inteiramente de espaços como vazio
WHERE COLUMN <> '' 

Ambos não retornarão NULL valores quando usado em um WHERE cláusula. Como NULL será avaliado como UNKNOWN para estes em vez de TRUE .
CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

Retorna apenas uma única linha A . Ou seja As linhas com NULL ou uma string vazia ou uma string consistindo inteiramente de espaços são todos excluídos por esta consulta.

SQL Fiddle