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

Memfilter duplikat dalam tabel tanpa kunci utama

declare @T table
(
  catalogue_code int,
  purcha varchar(5),
  stock_ varchar(5)
)

insert into @T values
(1001,            'Box',     'Box'),
(1001,            'Box',     'Box'),
(1002,            'AA',      'AA'),
(1002,            'MM',      'MM'),
(1002,            'EA',      'EA'),
(1002,            'Set',     'Set'),
(1002,            'Kit',     'Kit'),
(1004,            'Set',     'Set')

;with C as
(
  select *,
         row_number() over(partition by catalogue_code 
                           order by case when purcha = 'EA'
                                         then 0
                                         else 1
                                    end) as rn
  from @T
)
select *
from C
where rn = 1

Hasil:

catalogue_code purcha stock_ rn
-------------- ------ ------ --------------------
1001           Box    Box    1
1002           EA     EA     1
1004           Set    Set    1

Cobalah di SE-Data Explorer:https://data.stackexchange.com/stackoverflow/ q/114648/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menampilkan Kolasi Server di SQL Server (T-SQL)

  2. Gabungkan Kolom Secara Vertikal di SQL

  3. Ubah peta skema database Entity Framework setelah menggunakan kode terlebih dahulu

  4. Cara Memodifikasi Periode Retensi Change Data Capture (CDC) di SQL Server - Tutorial SQL Server

  5. cara menulis fungsi angka ke kata di sql server