XÓA 1 BẢN GHI TRONG KHI 2 BẢN GHI GIỐNG HỆT NHAU VỀ CỘT, KHÔNG THỂ PH N BIỆT BẰNG ID bằng ROW_NUMBER()

WITH [CTE DUPLICATE] AS
(
SELECT
RN = ROW_NUMBER() OVER (PARTITION BY airport_code ORDER BY airport_code DESC)
FROM lohref_regions
where ([Country name] like '%Viet Nam%' or [Country_name] like '%Viet Nam%')
and city_name like '%hanoi%'
)
DELETE FROM [CTE DUPLICATE] WHERE RN = 1


  • có thể thay delete bằng select,…
  • PARTITION BY, ORDER BY bất kỳ cột nào

Hàm ROW_NUMBER không chỉ cho phép bạn sắp xếp toàn bộ tập hợp dòng mà còn có thể sử dụng mệnh đề PARTITION để lọc ra nhóm dòng cần đánh số. Các dòng sẽ được đánh số tuần tự trong từng giá trị PARTITION độc nhất. Các dãy số được đánh sẽ luôn bắt đầu từ 1 cho từng giá trị PARTITION mới trong tập hợp bản ghi của bạn