我想根據我嘗試使用的一種方式更新基于兩列的單列
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
uj5u.com熱心網友回復:
380 種可能的更新組合屬于一個單獨的表。出于說明的目的,我們可以在此處對包含組合的子查詢進行更新連接:
UPDATE t1
SET column_name = t2.val
FROM table_name t1
INNER JOIN
(
SELECT 2 AS col_1, 1991111 AS col_2, 2 AS val UNION ALL
SELECT 3, 1991110, 3 UNION ALL
...
) t2
ON t2.col_1 = t1.col_1 AND t2.col_2 = t1.col_2;
t2為方便起見,上述別名的子查詢可以維護一個單獨的善意表。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/371552.html
標籤:sql sql-server 查询语句
下一篇:從逗號分隔的SQL列中查找
