एक अन्य भविष्यवाणी जो मूल्यों की तुलना करने के लिए उपयोगी है जिसमें शून्य मान हो सकता है DISTINCT predicate है। सामान्य कॉलम (COL1 = COL2) का उपयोग करके दो स्तंभों की तुलना करना सत्य होगा यदि दोनों कॉलम में बराबर गैर-शून्य मान होता है। यदि दोनों कॉलम शून्य हैं, तो परिणाम गलत होगा क्योंकि शून्य किसी भी अन्य मूल्य के बराबर नहीं है, न कि एक और शून्य मूल्य भी। DISTINCT predicate का उपयोग करके, शून्य मान बराबर माना जाता है। तो COL1 को COL2 से DISTINCT नहीं होगा यदि दोनों कॉलम में बराबर गैर-शून्य मान होता है और जब दोनों कॉलम शून्य मान होते हैं।
DB2 Null Handling
इसका मतलब है कि सभी तुलना संचालन झूठा होगा, क्योंकि आप कुछ करने के लिए एक अज्ञात मूल्य की तुलना कर रहे हैं। तो इससे कोई फर्क नहीं पड़ता कि आप किस तुलना में उपयोग करते हैं (केवल आईएस न्यूल/न्यूल ऑपरेशन काम नहीं करता है!), यह गलत होगा।
आप क्वेरी काम करने के लिए आप की तरह
SELECT *
FROM SOMESCHEMA.SOMETABLE
WHERE COALESCE(SYSDATE, TIMESTAMP_FORMAT('0001-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS')) > @A
अगर डीबी 2 "एएनएसआई शून्य" अर्थ विज्ञान तो केवल बाइनरी ऑपरेटर यह सच होना चाहिए "है आईएस नल ", AFAIK। –
@ पीएसटी डीबी 2 [एएनएसआई है] (http://www.dbforums.com/db2/765612-handing-null-values-db2.html#post2808106), आपका मतलब क्या है कि केवल एकमात्र द्विआधारी ऑपरेटर जो सच है "शून्य है"_ ? –