सही (लेकिन ध्यान दें कि IN
एक ऑपरेटर है, क्लॉज नहीं है और यह सामान्य रूप से SQL में इस तरह काम करता है, न कि केवल Oracle के लिए)।
where 1 not in (null,1)
के बराबर है:
where 1 != null and 1 != 1
जिसे वास्तव में इस प्रकार लिखा जाना चाहिए:
WHERE 1 NOT IN (NULL, 1)
और
WHERE 1 <> NULL AND 1 <> 1
जो समान है:
WHERE (1 <> NULL) AND (1 <> 1)
जो इसका मूल्यांकन करता है:
WHERE UNKNOWN AND FALSE
और आगे के रूप में:
WHERE FALSE
तो, यह सही ढंग से कोई पंक्ति नहीं देता है।
ध्यान दें कि यदि आपके पास WHERE 1 NOT IN (NULL, 2)
. था , यह WHERE UNKNOWN
. का मूल्यांकन करेगा (एक अभ्यास के रूप में छोड़ दिया गया) और कोई पंक्तियाँ भी वापस नहीं की जाएंगी।