gpt4 book ai didi

sql - 从两个表更新时使用case when语句

转载 作者:行者123 更新时间:2023-12-02 04:01:28 26 4
gpt4 key购买 nike

在Oracle中是否可以从两个可选表中更新表的列。我的意思是,有2个表的列完全相同,并且根据输入ID,我想更新相关表。
例如。

UPDATE CASE WHEN EXISTS (
SELECT A.ID FROM Table_A A
WHERE A.ID = 'B1'
)
THEN
Table_A A
SET A.Status = '0'
WHERE A.ID = 'B1'
ELSE
Table_B B
SET B.Status = '0'
WHERE B.ID = 'B1'

其中Table_A和Table_B具有完全相同的列,但记录不同。

谢谢。

最佳答案

我认为不可能仅凭一条语句就可以实现,但是您可以使用PL / SQL来实现:

declare
VarCount number;

begin

SELECT COUNT(*)
INTO VarCount
FROM Table_A
WHERE ID = 'B1';

IF VarCount > 1 THEN
UPDATE Table_A
SET Status = '0'
WHERE ID = 'B1';
ELSE
UPDATE Table_B
SET Status = '0'
WHERE ID = 'B1';
END IF;

结束;

关于sql - 从两个表更新时使用case when语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com