gpt4 book ai didi

sql - 使用 CASE WHEN - ORACLE 更新多行

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

我的结构表 ACCOUNT 如下:

ACCOUNT_ID  | ACCOUNT_STATUS| 
004460721 | 2 |
042056291 | 5 |
601272065 | 3 |

我需要使用一个 SELECT 语句一次更新三行,这样第二列将分别为 5、3、2。
我使用了以下查询,但似乎缺少一些东西
UPDATE ACCOUNT
SET ACCOUNT_STATUS = CASE
WHEN ACCOUNT_STATUS = '004460721' THEN 5
WHEN ACCOUNT_STATUS = '042056291' THEN 3
WHEN ACCOUNT_STATUS = '601272065' THEN 2
WHERE ACCOUNT_ID IN ('004460721','042056291','601272065')

我的问题是,这种方式正确吗?如果不是,我可以使用 CASE WHEN 语句以及如何或我只能选择使用 SUB-SELECT 来在一个语句中实现吗?
请注意,这是用于 SQL ORACLE

最佳答案

好的,根据您提供的 fiddle ,我已经尝试过这些并且对我有用

create table account(  account_id number primary key,
account_status varchar2(30));

insert into account values(1, '5');
insert into account values(2, '3');
insert into account values(3, '2');

select * from account


update account
set account_status= case
when account_id=1 then '2'
when account_id=2 then '5'
when account_id=3 then '3'
END

select * from account

我没有使用 where 条件

关于sql - 使用 CASE WHEN - ORACLE 更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18760632/

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