gpt4 book ai didi

sql - 带 JOIN 的条件更新语句

转载 作者:行者123 更新时间:2023-12-04 17:57:59 25 4
gpt4 key购买 nike

我正在尝试根据另一个表 main 的列 Days_At_Step 的值更新列 Plan_Status
以下语句有效,但是,我如何将其构造为条件语句?
或者,我可以使用另一种策略吗?

我觉得有比使用三个具有不同 WHERE 条件的相同语句更好的方法。

  UPDATE controlState 
SET Plan_Status=1
FROM controlState JOIN main ON main.Cscc = controlState.Cscc
WHERE Days_At_Step < 2;

UPDATE controlState
SET Plan_Status=2
FROM controlState JOIN main ON main.Cscc = controlState.Cscc
WHERE (Days_At_Step >= 2 OR Days_At_Step < 4);

UPDATE controlState
SET Plan_Status=3
FROM controlState JOIN main ON main.Cscc = controlState.Cscc
WHERE Days_At_Step > 4;

最佳答案

三个 where 子句涵盖了 Days_At_Step 可能获得的所有可能值,因此您实际上根本不需要 where 子句。相反,您可以将此逻辑移至 case 表达式:

UPDATE controlState 
SET Plan_Status = CASE WHEN Days_At_Step < 2 THEN 1
WHEN (Days_At_Step >= 2 OR Days_At_Step < 4) THEN 2
ELSE 3
END
FROM controlState
JOIN main ON main.Cscc = controlState.Cscc;

关于sql - 带 JOIN 的条件更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38771596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com