我想使用一個 SQL 選擇陳述句,它的條件是“A 列為 NULL 將 B 列的值更改為 C 列的值”。我如何能夠將此邏輯合并到 SELECT 陳述句中(不是 UPDATE 陳述句,因為我無法更改服務器上的表,但想從服務器查詢它們)。
SELECT final.*
FROM final
實際表在下圖中,如果 Change 列為空,我想更改列 Old 以匹配列 DirectUse。

uj5u.com熱心網友回復:
使用CASE運算式:
SELECT Name, NameSimple, DirectUse, Year, Month,
CASE WHEN Change IS NULL THEN DirectUse ELSE Old END AS Old,
CurrentCons, Change
FROM final;
uj5u.com熱心網友回復:
我認為您基本上想要:
SELECT
ColumnA
, CASE WHEN ColumnA IS NULL THEN ColumnC ELSE ColumnB END AS ColumnB
, ColumnC
, <any other columns>
FROM Final
uj5u.com熱心網友回復:
嘗試Case宣告:
SELECT
Name, NameSimple, DirectUse, Year, Month,
CASE WHEN Change IS NULL THEN DirectUse ELSE Old END AS Old,
CurrentCons, Change
FROM final;
案例:https ://www.w3schools.com/sql/sql_case.asp
也可以由 UNION ALL 合并:
SELECT Old
FROM final where Change is not null
UNION ALL
SELECT DirectUse
FROM final where Change is null
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418722.html
標籤:
上一篇:基于兩個表撰寫查詢,該表回傳每個客戶的訂單數(按電子郵件分組)
下一篇:橫向視圖在bigquery中爆炸
