【发布时间】:2019-10-07 11:02:35
【问题描述】:
显示表格行中的替代列
【问题讨论】:
-
样本数据最好显示为formatted text。请参阅here,了解有关如何创建漂亮表格的一些提示。
显示表格行中的替代列
【问题讨论】:
将salary列转换为字符串数据类型(使salary和name具有相同的数据类型)然后UNPIVOT:
Oracle 设置:
CREATE TABLE test_data ( id, name, salary ) AS
SELECT 100, 'A', 1000 FROM DUAL UNION ALL
SELECT 101, 'B', 2000 FROM DUAL UNION ALL
SELECT 102, 'C', 3000 FROM DUAL
查询:
SELECT id, value
FROM (
SELECT id, name, TO_CHAR( salary ) AS salary
FROM test_data
)
UNPIVOT ( value FOR key IN ( name, salary ) )
输出:
身份证 |价值 --: | :---- 100 |一种 100 | 1000 101 |乙 101 | 2000 102 | C 102 | 3000
db小提琴here
【讨论】:
或者,UNION ALL 也可以为您工作,如果您同意更改 Salary 列的数据类型 -
SELECT ID, Name "Name & Salary"
FROM TABLE1
UNION ALL
SELECT ID, Salary
FROM TABLE1
ORDER BY ID, Name
【讨论】: