sql >> Databáze >  >> RDS >> Sqlserver

Jak zkontrolovat, zda není řetězec null a není prázdný na serveru SQL?

Pokud chcete najít "" pouze jako prázdný řetězec

WHERE DATALENGTH(COLUMN) > 0 

Pokud chcete jakýkoli řetězec sestávající výhradně z mezer považovat za prázdný

WHERE COLUMN <> '' 

Oba tyto nevrátí NULL hodnoty při použití v WHERE doložka. Jako NULL se vyhodnotí jako UNKNOWN pro tyto, spíše než TRUE .

CREATE TABLE T 
  ( 
     C VARCHAR(10) 
  ); 

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

SELECT * 
FROM   T 
WHERE  C <> ''

Vrátí pouze jeden řádek A . Tj. Řádky s NULL nebo prázdný řetězec nebo řetězec sestávající výhradně z mezer jsou tímto dotazem vyloučeny.

SQL Fiddle



  1. Jak přidat kritéria vyhledávání a filtrování v Yii

  2. SQL/Oracle:když lze použít indexy ve více sloupcích

  3. Dotaz MySQL s polem časového razítka UNIX

  4. Pole PHP se nezaplní daty mysql