sql >> Databasteknik >  >> RDS >> Sqlserver

Hur kontrollerar jag efter Is not Null And Is Not Empty sträng i SQL-servern?

Om du bara vill matcha "" som en tom sträng

WHERE DATALENGTH(COLUMN) > 0 

Om du vill räkna en sträng som helt består av mellanslag som tom

WHERE COLUMN <> '' 

Båda dessa returnerar inte NULL värden när de används i en WHERE klausul. Som NULL kommer att utvärderas som UNKNOWN för dessa istället för TRUE .

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

Returnerar bara den enstaka raden A . d.v.s. Raderna med NULL eller en tom sträng eller en sträng som helt består av blanksteg exkluderas alla av den här frågan.

SQL Fiddle



  1. Liquibase - kontrollsumma skiljer sig med olika databasleverantörer

  2. Hur man får veckovis rekord i mysql från start- till slutdatum

  3. Rails &MSSQL 2008 - Kommer vi att träffa barriärer?

  4. MySQL InnoDB textsökningsalternativ