【发布时间】:2021-05-16 07:53:49
【问题描述】:
我有以下查询:
SELECT COL1,ABC AS COL2,'1' AS SEQ,'GRP 10' AS GRP_NAME,'ABC' AS INPUT_COL_NAME,'NEW1' AS OUTPUT_COL_NAME FROM TABLE1
UNION ALL
SELECT COL1,MNO AS COL2,'2' AS SEQ,'GRP 10' AS GRP_NAME,'MNO' AS INPUT_COL_NAME,'NEW2' AS OUTPUT_COL_NAME FROM TABLE1
UNION ALL
SELECT COL1,XYZ AS COL2,'3' AS SEQ,'GRP 10' AS GRP_NAME,'XYZ' AS INPUT_COL_NAME,'NEW3' AS OUTPUT_COL_NAME FROM TABLE1
输入表数据:
SELECT COL1,COL2 FROM TABLE1
COL1 ABC MNO XYZ 1 0 20 100 2 15 50 150
输出是:
COL1 COL2 SEQ GRP_NAME INPUT_COL_NAME OUTPUT_COL_NAME 1 0 1 GRP_NEW ABC NEW1 2 15 1 GRP_NEW ABC NEW1 1 20 2 GRP_NEW MNO NEW2 2 50 2 GRP_NEW MNO NEW2 1 100 3 GRP_NEW XYZ NEW3 2 150 3 GRP_NEW XYZ NEW3
上面的查询可以转化为 PIVOT 查询吗?生成相同的输出。
【问题讨论】: