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

Bagaimana Menemukan Baris yang Duplikat dengan Kunci tetapi Bukan Duplikat di Semua Kolom?

Anda dapat melakukannya dengan menggabungkan tabel itu sendiri, dengan mengatakan bahwa semua D sama dan setidaknya satu dari C tidak sama.

CREATE TABLE #Source (
    D1 VARCHAR(2),
    D2 VARCHAR(2),
    D3 VARCHAR(2),
    C4 VARCHAR(2),
    C5 VARCHAR(2),
    C6 VARCHAR(2) );

INSERT INTO #Source VALUES ('A', 'B', 'C', 'X1', 'X2', 'X3');
INSERT INTO #Source VALUES ('A', 'B', 'C', 'X1', 'X2', 'X4');
INSERT INTO #Source VALUES ('A', 'B', 'D', 'X1', 'X2', 'X3');
INSERT INTO #Source VALUES ('A', 'B', 'D', 'X1', 'X2', 'X3');

SELECT S1.D1, S1.D2, S1.D3, S1.C4 C4_1, S2.C4 C4_2, S1.C5 C5_1, S2.C5 C5_2, S1.C6 C6_1, S2.C6 C6_2
FROM
    #Source S1
            INNER JOIN
    #Source S2
            ON
        (       S1.D1 = S2.D1 
            AND S1.D2 = S2.D2
            AND S1.D3 = S2.D3
            AND (   S1.C4 <> S2.C4
                 OR S1.C5 <> S2.C5
                 OR S1.C6 <> S2.C6
                 )
        );

DROP TABLE #Source;

Memberikan hasil sebagai berikut:

D1   D2   D3   C4_1 C4_2 C5_1 C5_2 C6_1 C6_2
---- ---- ---- ---- ---- ---- ---- ---- ----
A    B    C    X1   X1   X2   X2   X4   X3
A    B    C    X1   X1   X2   X2   X3   X4

Perhatikan juga bahwa ini kompatibel dengan MS SQL 2000 seperti yang Anda tunjukkan nanti diperlukan di Cara Mengonversi Query SQL menggunakan Ekspresi Tabel Umum menjadi One Without (untuk SQL Server 2000) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jdbc.SQLServerException:Login gagal untuk pengguna untuk pengguna mana pun

  2. SELECT max(x) mengembalikan nol; bagaimana saya bisa membuatnya kembali 0?

  3. Apa yang Baru di SQL Server 2019?

  4. Bagaimana cara menjatuhkan batasan kunci asing hanya jika ada di server sql?

  5. Bagaimana cara menangani nama kolom SQL yang terlihat seperti kata kunci SQL?