मेरे पास एक क्वेरी थी (उपसर्ग वाले पोस्टग्रेज और इंफॉर्मिक्स के लिए) NOT INजिसमें एक उपश्रेणी थी जिसमें कुछ मामलों में NULLमान लौटाए गए थे , जिसके कारण वह खंड (और संपूर्ण क्वेरी) कुछ भी वापस करने में विफल रहा।
इसे समझने का सबसे अच्छा तरीका क्या है? मैंने NULLबिना मूल्य के कुछ के रूप में सोचा , और इसलिए क्वेरी के असफल होने की उम्मीद नहीं थी, लेकिन जाहिर है कि यह सोचने का सही तरीका नहीं है NULL।
x <> NULLसमाधान के रूप में देखते हैं, तो आप इसका मूल्यांकन करने कीFALSEअपेक्षा करेंगे , और ऐसा नहीं है। दोनों का मूल्यांकन । चाल यह है कि एक पंक्ति का चयन केवल तभी किया जाता है यदि खंड (यदि वर्तमान) का मूल्यांकन करता है - यदि पंक्ति या तो खंड का मूल्यांकन करती है तो एक पंक्ति छोड़ दी जाती है । यह व्यवहार (सामान्य रूप से, और विशेष रूप से विधेय के लिए ) SQL मानक द्वारा अनिवार्य है।NOT (x <> NULL)TRUEUNKNOWNWHERETRUEFALSEUNKNOWNNOT IN