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

INNER JOIN करते समय डुप्लीकेट परिणाम

SELECT 
    a.id AS a_id, a.str1 AS a_str1, a.str2 AS a_str2, 
    b.id AS b_id, b.str1 AS b_str1, b.str2 AS b_str2
FROM 
    ( SELECT *
           , ROW_NUMBER() OVER (PARTITION BY str1, str2 ORDER BY id) AS rn
      FROM #A 
    ) a
  INNER JOIN 
    ( SELECT *
           , ROW_NUMBER() OVER (PARTITION BY str1, str2 ORDER BY id) AS rn
      FROM #B 
    ) b 
    ON  a.str1 = b.str1 
    AND a.str2 = b.str2 
    AND a.rn = b.rn ;

यदि आपके पास समान (str1, str2) . के लिए एक या अन्य तालिकाओं में अधिक पंक्तियां हैं संयोजन, आप चुन सकते हैं कि INNER . को बदलकर कौन-सा लौटाया जाएगा LEFT . में से किसी एक में शामिल हों , RIGHT या FULL शामिल हों।



  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 सर्वर की छिपी विशेषताएं

  2. SQL सर्वर में लॉजिकल या ऑपरेटर क्या है - SQL सर्वर / TSQL ट्यूटोरियल पार्ट 119

  3. लेन-देन के भीतर तालिका को छोटा करें

  4. SQL सर्वर में कर्सर चर का उपयोग करने पर लाभ (@cn कर्सर घोषित करें)

  5. जांचें कि दिनांक SQL में अतिव्यापी है या नहीं