Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie überprüfe ich in SQL Server, ob die Zeichenfolge "Is not Null" und "Is not Empty" ist?

Wenn Sie "" nur als leeren String abgleichen möchten

WHERE DATALENGTH(COLUMN) > 0 

Wenn Sie eine Zeichenfolge, die ausschließlich aus Leerzeichen besteht, als leer zählen möchten

WHERE COLUMN <> '' 

Beide geben nicht NULL zurück Werte, wenn sie in einem WHERE verwendet werden Klausel. Als NULL wird als UNKNOWN ausgewertet für diese statt TRUE .

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

Gibt nur die einzelne Zeile A zurück . D.h. Die Zeilen mit NULL oder eine leere Zeichenfolge oder eine Zeichenfolge, die vollständig aus Leerzeichen besteht, werden von dieser Abfrage ausgeschlossen.

SQL-Geige