问题描述
我正在尝试根据返回的行数更新下表。 如果结果集仅返回1行,则将stat设置为N,如果count> 1或count
所以我的第一个查询返回id(我们必须发送此查询返回的id来更新查询) 第二个查询仅在结果集只有一行时才更新。
create table person(id number(10),stat char(1));
insert into person(id,stat)values(123,'Y');
insert into person(id,stat)values(345,'Y');
commit;
输入:
输出:
例如我的选择查询返回id = 345
任何帮助将不胜感激。
解决方法
如果该ID仅出现一次,则此更新会将 stat 设置为 N 。
UPDATE person p1
SET p1.stat = 'N'
WHERE p1.id IN ( SELECT p2.id
FROM person p2
GROUP BY p2.id
HAVING COUNT (*) = 1);