2009-06-11 24 views
10

Tôi có một trường trong bảng là boolean, một phạm vi bản ghi không có giá trị (không đúng hoặc sai). Làm cách nào để viết câu lệnh SQL của tôi để tìm các câu lệnh này?Kiểm tra cơ sở dữ liệu cho giá trị boolean NULL

Tôi đã thử các câu lệnh SQL sau đây mà không thành công:

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

Bất kỳ trợ giúp sẽ được đánh giá rất nhiều.

Nhiều Cảm ơn, Ben

+0

Cảm ơn tất cả các câu trả lời của bạn, esp/Mitch Wheat :) –

+0

NULL không phải là một giá trị, nó không có giá trị. Do đó không có giá trị nào có thể được so sánh với sự vắng mặt của giá trị. –

+1

@Milen: Khá nhiều ngôn ngữ khác quản lý điều này tốt. IMO nó cực kỳ câm mà SQL cần một toán tử khác nhau cho – Draemon

Trả lời

30

Trong TSQL, bạn cần phải sử dụng IS hơn = khi so sánh với NULL:

SELECT * FROM table WHERE field IS NULL 
+1

DOH này! 17 giây quá chậm :) –

+1

Bởi vì nó sẽ dễ dàng bỏ lỡ: sử dụng "IS" thay vì "=" với NULL. Thay vì "! =", Tương tự, sử dụng "IS NOT NULL". –

6

Hãy thử

select * from table where field IS null 
4

Bạn muốn IS NULL Tôi tin rằng:

SELECT * FROM table WHERE field IS NULL 
Các vấn đề liên quan