這是我的表的名稱Result_Simul刪除重複行,並保持
這是值
Pk FkIdResult FkIdSimul
1 43 1244
2 43 1244
3 52 1244
4 52 1244
如何保持自顧自地行PK = 1和PK = 3,刪除PK = 2和Pk = 4
感謝您的幫助。
我不是在TSQL真的好
弗蘭克
這是我的表的名稱Result_Simul刪除重複行,並保持
這是值
Pk FkIdResult FkIdSimul
1 43 1244
2 43 1244
3 52 1244
4 52 1244
如何保持自顧自地行PK = 1和PK = 3,刪除PK = 2和Pk = 4
感謝您的幫助。
我不是在TSQL真的好
弗蘭克
您可以使用row_number
給每個重複的上升數字,然後刪除第二和更高的重複:
delete tbl
from (
select row_number() over (partition by FkIdResult, FkIdSimul
order by Pk desc) as rn
, *
from YourTable
) tbl
where rn > 1
不知道'partition by',非常酷! – mellamokb 2012-03-23 19:06:05
+1 - 我正在使用'cross apply',但是這很整潔。 – 2012-03-23 19:18:40
in mysql:
create temporary table table2 as (select min(pk) as pk from Table1 group by FkIdResult );
delete from Table1 where pk not in (select pk from table2)
你在什麼版本的sql-server? – 2012-03-23 19:03:07
sql server 2008 – FrankSharp 2012-03-23 19:04:16