sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan tjekker du efter Er ikke null og er ikke tom streng i SQL-serveren?

Hvis du kun vil matche "" som en tom streng

WHERE DATALENGTH(COLUMN) > 0 

Hvis du vil tælle en streng, der udelukkende består af mellemrum, som tom

WHERE COLUMN <> '' 

Begge disse vil ikke returnere NULL værdier, når de bruges i en WHERE klausul. Som NULL vil evaluere som UNKNOWN for disse i stedet for TRUE .

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

Returnerer kun den enkelte række A . dvs. Rækkerne med NULL eller en tom streng eller en streng, der udelukkende består af mellemrum, er alle udelukket af denne forespørgsel.

SQL Fiddle



  1. ORACLE/ASP.NET:ORA-2020 - For mange databaselinks... hvad forårsager dette?

  2. Hvordan bruger du scriptvariabler i psql?

  3. Hvordan sorterer sql server dine data?

  4. Hvordan fungerer memcache med MySQL?