永发信息网

sql删除重复数据只保留一条

答案:2  悬赏:50  手机版
解决时间 2021-02-10 00:09
  • 提问者网友:孤山下
  • 2021-02-09 17:41
我用如下语句是报错,

delete from t_prices_jg where

(t_prices_jg.fitemcode,t_prices_jg.foper,t_prices_jg.fopernote,t_prices_jg.fsb) in (select fitemcode,foper,fopernote,fsb from t_prices_jg group by fitemcode,foper,fsb having count(*)>1)

and t_prices_jg.fid not in (select min(fid) from t_prices_jg group by fitemcode,foper,fsb having count(*)>1)

报错内容为:

消息 102,级别 15,状态 1,第 3 行

',' 附近有语法错误。

消息 156,级别 15,状态 1,第 4 行

关键字 'and' 附近有语法错误。

但是我检查不出哪里的语法错误,真是……

请哪位大能帮忙看看
最佳答案
  • 五星知识达人网友:玩世
  • 2021-02-09 18:18
delete from t_prices_jg where fid not in (select min(fid) from t_prices_jg group by fitemcode,foper,fsb)这样就行了啊,备份一下表执行
全部回答
  • 1楼网友:雾月
  • 2021-02-09 18:57

假设该表id作为pk,只保留一条shopname不重复数据

delete from shop

where id not in(select min(id) from shop

group by shopname)

效率不是很高,但是通用性比较强

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯