Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hasil duplikat saat melakukan 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 ;

Jika Anda memiliki lebih banyak baris dalam satu atau tabel lain untuk (str1, str2) yang sama kombinasi, Anda dapat memilih mana yang akan dikembalikan dengan mengubah INNER bergabung ke salah satu LEFT , RIGHT atau FULL bergabung.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat DB di SQL Express menggunakan perintah SQL?

  2. Mengapa (dan bagaimana) membagi kolom menggunakan master..spt_values?

  3. Memantau Database dan Instance melalui Activity Monitor | Pemecahan Masalah Kinerja SQL Server -2

  4. Simulasi CONNECT SEBELUMNYA dari Oracle di SQL Server

  5. Menyinkronkan data antara dua database yang berbeda