Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

IS DISTINCT FROM और IS DISTINCT F से फिर से कैसे लिखा जाए?

IS DISTINCT FROM विधेय को SQL:1999 के फीचर T151 के रूप में पेश किया गया था, और इसके पठनीय निषेध, IS NOT DISTINCT FROM , को SQL:2003 के फीचर T152 के रूप में जोड़ा गया था। इन विधेय का उद्देश्य यह गारंटी देना है कि दो मानों की तुलना करने का परिणाम या तो सत्य है या गलत , कभी नहीं अज्ञात

ये विधेय किसी भी तुलनीय प्रकार (पंक्तियों, सरणियों और मल्टीसेट सहित) के साथ काम करते हैं, जिससे उनका सटीक रूप से अनुकरण करना जटिल हो जाता है। हालाँकि, SQL सर्वर इनमें से अधिकांश प्रकारों का समर्थन नहीं करता है, इसलिए हम शून्य तर्कों/संचालनों की जाँच करके बहुत दूर जा सकते हैं:

  • a IS DISTINCT FROM b के रूप में फिर से लिखा जा सकता है:

    ((a <> b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))
    
  • a IS NOT DISTINCT FROM b के रूप में फिर से लिखा जा सकता है:

    (NOT (a <> b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))
    

आपका अपना उत्तर गलत है क्योंकि यह विचार करने में विफल रहता है कि FALSE OR NULL अज्ञात . का मूल्यांकन करता है . उदाहरण के लिए, NULL IS DISTINCT FROM NULL गलत . का मूल्यांकन करना चाहिए . इसी तरह, 1 IS NOT DISTINCT FROM NULL गलत . का मूल्यांकन करना चाहिए . दोनों ही मामलों में, आपके भाव अज्ञात . उत्पन्न करते हैं ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Group BY, प्रत्येक समूह के लिए शीर्ष N आइटम

  2. SQL सर्वर प्रबंधन स्टूडियो में SQL को प्रारूपित करें

  3. एसक्यूएल सर्वर 2008 प्रबंधन स्टूडियो मेरी क्वेरी के सिंटैक्स की जांच नहीं कर रहा है

  4. डेटाबेस मेल (SSMS) के लिए एक डिफ़ॉल्ट सार्वजनिक प्रोफ़ाइल सेट करें

  5. SQL सर्वर (T-SQL) में उपयोगकर्ता परिभाषित डेटा प्रकार का नाम बदलें