Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment vérifier la chaîne N'est pas nulle et n'est pas vide dans le serveur SQL?

Si vous souhaitez uniquement faire correspondre "" en tant que chaîne vide

WHERE DATALENGTH(COLUMN) > 0 

Si vous souhaitez compter toute chaîne composée entièrement d'espaces comme vide

WHERE COLUMN <> '' 

Les deux ne renverront pas NULL valeurs lorsqu'elles sont utilisées dans un WHERE clause. Comme NULL sera évalué comme UNKNOWN pour ceux-ci plutôt que TRUE .

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

Renvoie une seule ligne A . C'est à dire. Les lignes avec NULL ou une chaîne vide ou une chaîne entièrement composée d'espaces sont tous exclus par cette requête.

SQL Fiddle