我有一个带有VALUE,VALUE_SIM,SIM_STATUS,ID列的表VALUE,VALUE_SIM,SIM_STATUS,ID。我想更新ID = 288的列ID = 288。我还想在更新后显示这些列。
这些条件是:
1. SIM_STATUS = 0 when VALUE = VALUE_SIM.
2. SIM_STATUS = 1 when VALUE < VALUE_SIM.
3. SIM_STATUS = 2 when VALUE > VALUE_SIM.我编写了以下查询,但它显示了一个错误。
("UPDATE TEST"
"SET SIM_STATE = ( CASE WHEN VALUE = VALUE_SIM THEN SIM_STATE = 0 END )"
"SET SIM_STATE = ( CASE WHEN VALUE < VALUE_SIM THEN SIM_STATE = 1 END )"
"SET SIM_STATE = ( CASE WHEN VALUE > VALUE_SIM THEN SIM_STATE = 2 END )"
"where ID = 288 ");发布于 2015-06-25 11:33:51
您想要的查询是:
UPDATE TEST
SET SIM_STATE = (CASE WHEN VALUE = VALUE_SIM THEN 0
WHEN VALUE < VALUE_SIM THEN 1
WHEN VALUE > VALUE_SIM = 2
END)
WHERE NUMBER = 288;查询有几个语法错误。我甚至不知道您是否打算将双引号作为查询的一部分。
发布于 2015-06-25 11:45:58
我猜这就行了
UPDATE TEST
SET
SIM_STATE =
CASE WHEN VALUE < VALUE_SIM THEN 1
+ CASE WHEN VALUE > VALUE_SIM THEN 2
+ CASE WHEN VALUE = VALUE_SIM THEN 0
WHERE ID = 1https://stackoverflow.com/questions/31049122
复制相似问题