簡體   English   中英

如何根據條件更新SQL SERVER DB中的表列

[英]How to Update table column in SQL SERVER DB based on condition

我有一張包含以下信息的表:

ID         Value_N1        Date_N1     Value_N4      Date_N4
1           NULL          2017-05-31    0.236        2017-02-28
2           NULL          2017-05-31    0.589        2017-02-28
3           NULL          2017-08-30    0.898        2017-08-30
4           NULL          2017-11-30    0.789        2017-11-30

我想用Value_N4中的值更新Value_N1列,其中Date_N1等於Date_N4

我嘗試使用以下查詢,但是卻無濟於事:

Update TableName
set Value_N1 = (select Value_N4 from TbleName where Date_N1 = Date_N4)

由於該查詢返回的值不止一個,因此該查詢不起作用。 如何做到這一點?

您也可以使用CASE表達式。

詢問

update TableName
set Value_N1 = (
    case when Date_N1 = Date_N4
    then Value_N4
    else Value_N1 end
);

更新TableName設置Value_N1 = Value_N4,其中Date_N1 = Date_N4

將新值設置為Value_N1邏輯是正確的,但是要更新記錄的限制應出現在WHERE子句中。

UPDATE TableName
SET Value_N1 = Value_N4
WHERE Date_N1 = Date_N4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM