表中字段 type 區分兩類數據(如:收入/支出),需根據該值將同三個數值字段(amt1, amt2, amt3)以不同業務語義別名輸出共 6 列,供前端直接展示及導出,純 SQL 實現。
SELECT
id,
type,
CASE WHEN type = '收入' THEN amt1 END AS income_amt1,
CASE WHEN type = '收入' THEN amt2 END AS income_amt2,
CASE WHEN type = '收入' THEN amt3 END AS income_amt3,
CASE WHEN type = '支出' THEN amt1 END AS expense_amt1,
CASE WHEN type = '支出' THEN amt2 END AS expense_amt2,
CASE WHEN type = '支出' THEN amt3 END AS expense_amt3
FROM business_table;
CASE 返回 NULL,滿足「另三列為空」需求。WHEN 分支。若別名本身需根據數據動態生成,需使用存儲過程拼接 SQL 字符串執行,但會失去靜態類型檢查與計劃緩存優勢,不推薦常規業務使用。