删除重复字段的SQL语句到底错在哪?(根据多个字段判断重复)
表A:如下
ID aID LH MC
19366 5B(1.5m)配布配布
29366 5B(1.5m)主布主布
39366 5BT宝塔线宝塔线
49366 5BT宝塔线宝塔线
59366 5B沿条沿条
69367 5B沿条沿条
.....
=========================================
需要删除 aID=9366中 第4条冗余数据。
方法A:
delete from 表A a
where aID=9366 (a.LH,a.MC) in (select LH,MC from 表A where aID=9366 group by LH,MC having count(*) > 1 )
and ID not in (select min(ID) from 表A where aID=9366 group by LH,MC having count(*)>1)
一直提示什么
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'a' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 3
在关键字 'and' 附近有语法错误。
==============
方法B:
delete 表A from 表A as T where
exists( select 1 from 表A where LH=T.LH and MC=T.MC and id < T.id )
and aID=9366
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: ' ' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: ' ' 附近有语法错误。
[解决办法]
- SQL code
delete 表A from 表A as T WHERE EXISTS(select 1 from 表A where LH=T.LH and MC=T.MC and id < T.id ) and aID=9366
[解决办法]
方法A:
- SQL code
delete from 表A a where aID=9366 and exists (select LH,MC from 表A where aID=9366 group by LH,MC having count(*) > 1 ) and ID not in (select min(ID) from 表A where aID=9366 group by aID,LH,MC )
[解决办法]
顶楼上
如何删除 SQL Server 表中的重复行http://blog.csdn.net/yangsh0722/article/details/8021246
[解决办法]
全半角的问题
楼主看看吧