2009-06-11 3 views
10

के लिए डेटाबेस की जांच करना मेरे पास एक सारणी है जो बूलियन है, रिकॉर्ड्स की एक श्रृंखला का कोई मूल्य नहीं है (सत्य या गलत नहीं)। इन्हें खोजने के लिए मैं अपना एसक्यूएल कथन कैसे लिखूं?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

@ मिलेन: बहुत अधिक दूसरी भाषा यह बहुत अच्छी तरह से प्रबंधित करती है। आईएमओ यह बेहद मूर्ख है कि एसक्यूएल को इस – Draemon

उत्तर

30

TSQL में, आप जब NULL के साथ तुलना = बजाय IS उपयोग करने की आवश्यकता:

SELECT * FROM table WHERE field IS NULL 
+1

डीओएच के लिए एक अलग ऑपरेटर की आवश्यकता है! 17 सेकंड बहुत धीमी :) –

+1

क्योंकि इसे याद करना आसान होगा: नल के साथ "=" के बजाय "IS" का उपयोग करें। "! =" के बजाए, इसी प्रकार, "नॉट नल" का उपयोग करें। –

6

select * from table where field IS null 
4

आप IS NULL चाहते प्रयास करें मेरा मानना ​​है कि:

SELECT * FROM table WHERE field IS NULL