我ACCOUNT的结构表如下:
ACCOUNT
ACCOUNT_ID | ACCOUNT_STATUS| 004460721 | 2 | 042056291 | 5 | 601272065 | 3 |
我需要使用一条SELECT语句一次更新三行,以便第二列分别为5、3、2。 我使用以下查询,但似乎缺少一些内容
SELECT
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
CASE WHEN
SUB-SELECT
SQL ORACLE
好吧,根据您给的小提琴,我尝试了这些,对我有用
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条件