by
Neon Quach
2. September 2010 21:51
Cho rằng bạn đang có 1 table dữ liệu mà chứa trùng nhau, và bạn muốn xóa những dữ liệu trùng đó mà vẫn giữ lại giá 1 trị của dữ liệu đó.
Tình huống này mình gặp phải khi đang phát triển ứng dụng quản lý các đội của các mùa giải trong trận đấu bóng đá, mình design 1 db tạm và 1 table tạm có schema và data của nó y như sau:
Here is schema:

Here is data

Đầu tiên mình sẽ chọn ra các record mà mình cần giữ lại
SELECT min([id]) as id
,[name]
FROM [db_tmp].[dbo].[tbl_tmp]
group by [name]
Then mình sẽ deleta tất cả các records không nằm trong số records mà mình vừa lọc bên trên:
Delete From [db_tmp].[dbo].[tbl_tmp] where id not in
(Select Id from
(
SELECT min([id]) as id
,[name]
FROM [db_tmp].[dbo].[tbl_tmp]
group by [name]
) t
)
Happy SQLing
902fc83d-84f3-4c58-ac27-ba6cdf704fb6|0|.0
Tags:
sql, sql 2008
Categories: sql