oracle判断一个表的字段

想请教下:我有一个表,表名为A,里面有3个字段code,name,bo,还有一个表为B,里面
有很多个字段,有code,我想判断A表中的code数据有没有B表中的code数据,如果存在就把bo这个字段的值设为1.05,不存在的话就把bo这个这个字段的值设为1,请问下要怎么写语句

4个回答

update A set bo =
( case when A.code in (select A.code from A,B where A.code = B.code) then 1.05
else 1 end)

qq_34745752
qq_34745752 谢谢
2 年多之前 回复

update A set

update A set code = 1.05 where code in
(select A.code from A,B where A.code = B.code);

update A set code = 1 where code not in
(select A.code from A,B where A.code = B.code);

qq_34745752
qq_34745752 谢谢,我想问的是能不能写在一起呢
2 年多之前 回复
        SELECT code FROM A INTERSECT SELECT code FROM B     //查询两表的交集

UPDATE A SET bo = 1.05 WHERE code IN (SELECT code FROM A INTERSECT SELECT code FROM B )
UPDATE A SET bo = 1 WHERE code NOT IN (SELECT code FROM A INTERSECT SELECT code FROM B )

qq_34745752
qq_34745752 回复乐哉悠哉: 谢谢,大概懂了逻辑,知道怎么写
2 年多之前 回复
guankle
乐哉悠哉 回复qq_34745752: 用 case when 能写一个语句完成更新。
2 年多之前 回复
qq_34745752
qq_34745752 只能单独的这样写两条语句吗
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问