2009-06-11 21 views
10

Ho un campo in una tabella che è booleano, un intervallo di record non ha valore (non vero o falso). Come scrivo la mia dichiarazione SQL per trovarli?Controllo del database per il valore booleano NULL

Ho provato le seguenti istruzioni SQL senza successo:

1) SELECT * FROM table WHERE field = NULL 
2) SELECT * FROM table WHERE field != TRUE AND field != FALSE 

Qualsiasi aiuto sarebbe molto apprezzato.

Molte grazie, Ben

+0

Grazie per tutte le vostre risposte, esp/Mitch Wheat :) –

+0

NULL non è un valore, è assenza di valore. Quindi nessun valore potrebbe essere paragonato all'assenza di valore. –

+1

@Milen: praticamente ogni altra lingua lo gestisce bene. IMO è estremamente stupido che SQL abbia bisogno di un operatore diverso per questo DOH – Draemon

risposta

30

In TSQL, è necessario utilizzare IS piuttosto che = quando si confrontano con NULL:

SELECT * FROM table WHERE field IS NULL 
+1

! 17 secondi troppo lenti :) –

+1

Perché sarebbe facile perdere: utilizzare "IS" anziché "=" con NULL. Invece di "! =", Analogamente, usa "NON È NULLA". –

6

Prova

select * from table where field IS null 
4

Volete IS NULL credo:

SELECT * FROM table WHERE field IS NULL 
Problemi correlati