如何在同一查询中更新所选行
本文关键字:更新 查询 | 更新日期: 2023-09-27 18:35:53
>我有 1 个表 table1,还有一个选择查询
select col1 from table1 where id <= 10;
我想更新相同的记录
update table1 set col2 = 'some value' where id < 10;
我想在 1 个查询中执行这两个操作并获取所选结果,以便我可以使用它。
我该怎么做?
不能使用单个查询更新和选择行,因为两者都是不同的操作。所以你需要写2个不同的查询。
如果您不需要更新表格并想要临时输出,那么@Yosi为您提供了完美的解决方案。
你不必更新它,你使用CASE
语句:
SELECT col2 = CASE WHEN id<=10 THEN 'some value' ELSE col1 END
FROM table1
尝试使用 OUTPUT 进行此 sql 查询以获取更新的 vlaue
UPDATE persons
SET LastName = 'test'
OUTPUT Inserted.LastName
where id<10;
如果在更新后需要旧值:
UPDATE persons
SET LastName = 'test'
OUTPUT DELETED.LastName
where id<10;
演示