表X中有三个字段A、B、C,要实现的是:当表中两条记录的字段A、B都分别相同(即记录1的A=记录2的A,并且记录1的B=记录2的B)时将这两条记录的C字段都更新为“有重复”。。就这点儿分了,求热心人帮助。。
update X set c =‘有重复' where (??????????????)
oracle+c# 环境。。
如何update同一张表中具有相同字段的记录
答案:5 悬赏:40 手机版
解决时间 2021-02-27 16:56
- 提问者网友:杀手的诗
- 2021-02-27 00:00
最佳答案
- 五星知识达人网友:渊鱼
- 2021-02-27 00:42
因为你那个没有唯一键,试试这个吧
update test set c='有重复' where A+B
in
(SELECT A+B FROM test group by A,B having count(A)>1)
update test set c='有重复' where A+B
in
(SELECT A+B FROM test group by A,B having count(A)>1)
全部回答
- 1楼网友:三千妖杀
- 2021-02-27 05:18
这样试试,运行前注意备份一下你的tagout表,避免出问题恢复不了
update tagout set t.location=(select l.location from locations where t.location=l.oldlocation)
where t.location in (select oldlocation from locations) ;
- 2楼网友:往事隔山水
- 2021-02-27 04:54
update X set C='有重复' where (A,B) in (select A,B from X P where exists(select 1 from X Q where P.A=Q.A and P.B=Q.B))
- 3楼网友:野慌
- 2021-02-27 03:22
Update T1 set T1.C='有重复' from X T1,(select A,B,count(*) from X Temp group by (Temp.A,Temp.B) having count(*)>1)T2 where T1.A=T2.A and T1.B=T2.B
- 4楼网友:英雄的欲望
- 2021-02-27 02:08
CREATE TRIGGER SameWords ON 表X
FOR INSERT
AS
begin
if (select count(*) from X where A=inserted.A and B=inserted.B)>1
begin
Update X set C='有重复' where A=inserted.A and B=inserted.B
end
end
更新也要一个,样子一样,自己写写试试。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯