一张表里面以两个字段为唯一字段,当几条记录的这两个字段完全相同时,需要删除重复项,如下表
a b c d
1 2 3 4
1 5 3 5
1 2 7 9
以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1 2 3 4 或者第三条记录1 2 7 9请问各位大侠这种sql语句怎么写
a b c d
1 2 3 4
1 5 3 5
1 2 7 9
以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1 2 3 4 或者第三条记录1 2 7 9请问各位大侠这种sql语句怎么写
(SELECT ROW_NUMBER() OVER (ORDER BY a ASC) AS ROWID, * FROM MyTable)
DELETE FROM [MyTable ORDERED BY ROWID] WHERE ROWID =3
from tablename a
where c<>(select max(c) from tablename where a=a.a and b=a.b)
or d<>(select max(d) from tablename where a=a.a and b=a.b and c=a.c)
你要的结果不能得到吗
INSERT Tb1(id, [a], [b], [c], [d])
SELECT 1, '1','2','3','4'
UNION ALL SELECT 2, '1','5','3','5'
UNION ALL SELECT 3, '1','2','7','9'
UNION ALL SELECT 4, '1','4','7','6'
delete Tb1 where [id] not in (select max([id]) from Tb1 group by a,b )
delete Tb1 where [id] not in (select max([id]) from Tb1 group by a,c )
select * from tb1
drop table tb1如果更多,就组合