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

बदली हुई पंक्तियों को खोजें (नल के साथ समग्र कुंजी)

ANSI SQL में IS [NOT] DISTINCT FROM . है निर्माण जो अभी तक SQL सर्वर में लागू नहीं किया गया है (कनेक्ट अनुरोध )

यह संभव है इस कार्यक्षमता का अनुकरण करें SQL सर्वर में EXCEPT . का उपयोग करके /INTERSECT हालांकि। ये दोनों NULL . मानते हैं तुलना में समान। आप उन पंक्तियों को खोजना चाहते हैं जहां कुंजी कॉलम समान हैं लेकिन मान कॉलम अलग हैं। तो यह करना चाहिए।

SELECT *
FROM   SourceTable S
       JOIN DestinationTable D
         ON S.Key1 = D.Key1
            /*Join the key columns on equality*/
            AND NOT EXISTS (SELECT S.Key2,
                                   S.Key3
                            EXCEPT
                            SELECT D.Key2,
                                   D.Key3)  
             /*and the value columns on unequality*/
            AND NOT EXISTS (SELECT S.Value1,
                                   S.Value2
                            INTERSECT
                            SELECT D.Value1,
                                   D.Value2)  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अनाम बाधाओं को छोड़ना

  2. एकता से डेटाबेस से कैसे जुड़ें

  3. टीएसक्यूएल डेटडिफ 2 दशमलव स्थानों के साथ दिनों की संख्या वापस करने के लिए

  4. त्रुटि संदेश 4151 को ठीक करें "NULLIF के लिए पहले तर्क का प्रकार NULL स्थिरांक नहीं हो सकता क्योंकि SQL सर्वर में पहले तर्क के प्रकार को जानना होगा"

  5. SQL सर्वर संग्रहीत कार्यविधि में सम्मिलित करने पर तालिका चर खराब प्रदर्शन