繁体   English   中英

通过比较同一表中的两个不同列来更新列

[英]Update a column by comparing two different columns in the same table

我有一个带有列VALUE,VALUE_SIM,SIM_STATUS,ID的表TEST 我想更新ID = 288 SIM_STATUS列。 我也想在更新后显示列。

条件是:

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 ");

您想要的查询是:

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;

您的查询有几个语法错误。 我什至不知道您是否打算将双引号作为查询的一部分。

我想这会

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 = 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM