क्योंकि कोई भी तुलना ऑपरेटर NULL
. से अधिक है एक एसक्यूएल फ़िल्टर में दिखने से (और करता है) पंक्ति का चयन नहीं किया जाना चाहिए।
आपको नल सुरक्षित ऑपरेटर का उपयोग करना चाहिए <=>
NULL
वाले कॉलम से तुलना करने के लिए मान और अन्य NOT NULL
मान लेकिन <=>
लौटाएगा 1
जब दोनों ऑपरेंड NULL
हों क्योंकि NULL
NULL
. के बराबर कभी नहीं माना जाता है ।
यह एक ऐसी स्थिति का उदाहरण है जहां नल सुरक्षित ऑपरेटर उपयोगी है:
आपके पास एक टेबल है:
Phones
----
Number
CountryCode (can be NULL)
और आप उन सभी फ़ोन नंबरों का चयन करना चाहते हैं जो स्पेन से नहीं हैं (देश कोड 34)। पहली कोशिश आमतौर पर होती है:
SELECT Number FROM Phones WHERE CountryCode <> 34;
लेकिन आप देखते हैं कि ऐसे फोन हैं जिनका कोई देश कोड नहीं है (NULL मान) सूचीबद्ध नहीं किया जा रहा है और आप उन्हें अपने परिणाम में शामिल करना चाहते हैं क्योंकि वे न तो स्पेन से हैं:
SELECT Number FROM Phones WHERE CountryCode <=> 34;