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

Hindari duplikat dalam kueri INSERT INTO SELECT di SQL Server

Menggunakan NOT EXISTS :

INSERT INTO TABLE_2
  (id, name)
SELECT t1.id,
       t1.name
  FROM TABLE_1 t1
 WHERE NOT EXISTS(SELECT id
                    FROM TABLE_2 t2
                   WHERE t2.id = t1.id)

Menggunakan NOT IN :

INSERT INTO TABLE_2
  (id, name)
SELECT t1.id,
       t1.name
  FROM TABLE_1 t1
 WHERE t1.id NOT IN (SELECT id
                       FROM TABLE_2)

Menggunakan LEFT JOIN/IS NULL :

INSERT INTO TABLE_2
  (id, name)
   SELECT t1.id,
          t1.name
     FROM TABLE_1 t1
LEFT JOIN TABLE_2 t2 ON t2.id = t1.id
    WHERE t2.id IS NULL

Dari ketiga opsi tersebut, LEFT JOIN/IS NULL kurang efisien. Lihat tautan ini untuk detail selengkapnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memahami Pernyataan SQL Server ALTER TABLE ADD COLUMN

  2. Dapatkan Informasi Tampilan dengan Tampilan Skema Informasi VIEWS di SQL Server

  3. Apa yang terjadi pada ID kunci utama ketika melewati batas?

  4. Apakah Integrasi SQL Server CLR mendukung file konfigurasi?

  5. Kembalikan Tipe Data Dasar dari Nilai Varian SQL di SQL Server