【发布时间】:2013-09-12 09:36:39
【问题描述】:
我有如下结构的表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
【问题讨论】:
-
您要进行什么样的更新?将它们全部设置为相同的值?
-
@SarathiKamaraj 现在更新了,很抱歉造成混乱
-
@MultiThreader 现在更新了,很抱歉造成混乱
-
@hawk 你试过下面的 schurik 回答吗?我认为这可能会奏效......
-
转到此链接-docs.oracle.com/cd/B19306_01/appdev.102/b14261/…,仔细阅读,确保您理解其中的每一点,然后编辑或关闭此问题。