sql >> Database >  >> RDS >> Sqlserver

Hoe te controleren op Is not Null And Is not Empty string in SQL-server?

Als u alleen "" wilt matchen als een lege tekenreeks

WHERE DATALENGTH(COLUMN) > 0 

Als je een string die volledig uit spaties bestaat als leeg wilt tellen

WHERE COLUMN <> '' 

Beide zullen NULL niet teruggeven waarden bij gebruik in een WHERE clausule. Als NULL zal evalueren als UNKNOWN voor deze in plaats van TRUE .

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

Retourneert alleen de enkele rij A . D.w.z. De rijen met NULL of een lege tekenreeks of een tekenreeks die volledig uit spaties bestaat, worden allemaal uitgesloten door deze zoekopdracht.

SQL Fiddle



  1. Mysql - kies uit meerdere tabellen zonder dubbele gegevens te produceren

  2. Zoektabel met som van ALLE vorige posities, exclusief huidige positie

  3. Mysqli kies uit twee tabellen

  4. Alternatief voor RETURNING met INSERT...SELECT