2009-06-11 2 views
10

У меня есть поле в булевом столбце, диапазон записей не имеет значения (не true или false). Как написать мой SQL-запрос, чтобы найти их?Проверка базы данных для логического значения NULL

Я попытался следующие SQL заявления без успеха:

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

Любая помощь будет принята с благодарностью.

Большое спасибо, Бен

+0

Спасибо за все ваши ответы, esp/Mitch Wheat :) –

+0

NULL не является значением, это отсутствие ценности. Таким образом, никакая ценность не может сравниваться с отсутствием ценности. –

+1

@Milen: Практически каждый другой язык справляется с этим просто отлично. IMO очень глупо, что SQL нужен другой оператор для этого – Draemon

ответ

30

В TSQL, вам нужно использовать IS, а не = при сравнении с NULL:

SELECT * FROM table WHERE field IS NULL 
+1

DOH! 17 секунд слишком медленно :) –

+1

Потому что было бы легко пропустить: используйте «IS» вместо «=» с NULL. Вместо «! =» Аналогичным образом используйте «IS NOT NULL». –

6

Попробуйте

select * from table where field IS null 
4

Вы хотите IS NULL Я считаю:

SELECT * FROM table WHERE field IS NULL 
Смежные вопросы