求助:删除同一字段重复数据,并留下一条

discory 2012-05-23 08:12:57
我在网上找了好多方法,和我需要的条件不符合,只有求组各位老鸟了,下面是我表结构
a 表里有2个字段 id(主键) sftx(是否退休) , b 表里有2个字段 jlid(外键,对应jbxx_id) time,
现在表xy2010里jlid,time里纵向有重复的数据,我需要删除重复的数据留下一条,条件是b表的jlid对应a表的id里sftx为0

...全文
170 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
discory 2012-05-24
  • 打赏
  • 举报
回复
这个也是个问题,谁会游标的麻烦写个
弘恩 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
我在网上找了好多方法,和我需要的条件不符合,只有求组各位老鸟了,下面是我表结构
a 表里有2个字段 id(主键) sftx(是否退休) , b 表里有2个字段 jlid(外键,对应jbxx_id) time,
现在表xy2010里jlid,time里纵向有重复的数据,我需要删除重复的数据留下一条,条件是b表的jlid对应a表的id里sftx为0
[/Quote]


哎哎哎 ,有外键约束 ,你如何 TRUNCATE ??
唐诗三百首 2012-05-23
  • 打赏
  • 举报
回复
总之,原理是先把需要的保存起来,然后清空再导入.

细节如果实现自己想咯.
discory 2012-05-23
  • 打赏
  • 举报
回复
这个恐怕不行吧,其他字段有重复的但是不需要改动,你这样b表所有字段重复的都被改掉了,估计不行了,不过还是谢谢了
唐诗三百首 2012-05-23
  • 打赏
  • 举报
回复
try this,

select distinct b.*
into #tb
from b表 b
inner join a表 a
on b.jlid=a.id
where a.sftx=0

truncate table b表

insert into b表
select * from #tb
discory 2012-05-23
  • 打赏
  • 举报
回复
ttruncate table b表
这个是清空表,我还想留住其他不改动的字段可以吗,如果可以怎么写
唐诗三百首 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
#tb 什么意思,没看明白,能解释下吗
[/Quote]
将b表最终要保留的数据先存为临时表#tb
清空b表
将临时表#tb的记录插入b表
discory 2012-05-23
  • 打赏
  • 举报
回复
#tb 什么意思,没看明白,能解释下吗
唐诗三百首 2012-05-23
  • 打赏
  • 举报
回复

select distinct jlid,time
into #tb
from b表 b
inner join a表 a
on b.jlid=a.id
where a.sftx=0

truncate table b表

insert into b表(jlid,time)
select jlid,time from #tb

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧