【发布时间】:2022-01-07 18:53:58
【问题描述】:
我想根据我尝试使用此方法的一种方式根据两列更新单个列
UPDATE Table_name
Set column_name=1
WHERE col_1 = 120 and col_2 = 1991110
我尝试使用 case 表达式
UPDATE table_name
SET column_name =
CASE
when col_1 = 2 and col_2 = 1991111 then 2
when col_1 = 3 and col_2 = 1991110 then 3
.
.
.
.
.
.
else 0
end
但问题是我有 380 种 col_1 和 col_2 的组合,所以如果我使用这种方法,我会使用 380 次。我想要一些建议。
预期输出:
col1 col2 col3
1 1991110 1
2 1991111 2
3 1991110 3
4 1991111 4
【问题讨论】:
-
如果这些值都是提前知道的,您可以将它们放在一个单独的表中,连接两个常见的列并使用
set column_name =中的第三列进行实际更新。这种方法还可以在以后为您提供可调试性。 -
如果你有 380 种组合......它们是不可计算的,那么你如何想象有可能改进你所拥有的?
标签: sql sql-server tsql