如題,解決思路如下:
1、首先我們需要找出擁有重復數據的記錄

1 ---以name字段分組 2 select Name,COUNT(Name) as [count] from Permission group by Name-- having COUNT(Name)>1 3 4 ---以name字段分組,篩選出有重復出現的字段 having 用於條件篩選 作用相當於where 區別where用於group by 之前,having用於之后 5 select Name,COUNT(Name) as [count] from Permission group by Name having COUNT(Name)>1
執行結果:
2、然后我們需要知道要要保留的記錄的ID號,或者其他唯一標識字段

1 ---獲取重復記錄中最小的一項的ID號 2 select min(ID),Name,COUNT(Name) as [count] from Permission group by Name having COUNT(Name)>1
執行結果:
3、組合前面兩個數據查詢條件,進行刪除操作

1 ---刪除重復數據 2 delete from Permission 3 ---找出擁有相同數據的記錄 4 where Name in (select Name from Permission group by Name having COUNT(Name)>1) 5 ---除了最小ID號的數據保留,其他的刪除 (也可以用max(id)) 6 and ID not in (select min(ID) from Permission group by Name having COUNT(Name)>1)