oracle如何把多列转换为1列展示

我需要把多列展示为1列显示,转换前的第一列展示位转换厚第一列的第1行,转换前的第二列展示位转换厚第一列的第2行,以此类推。图片说明
,如图片。以TEST_NAME = 'CONT3'为例,展示的结果是
CONT3
1.1
5
300
mV 因为我这个表数据可能会变化,所以最好不要写死,求大神指教呢。

如果按照你说的这样转换,那么多行数据转换后,因为只有一列,那么数据岂不是很杂乱

CONT3
1.1
5
300
mV
CONT4
1.2
5
300
mV

你能分清每一行的值都代表什么吗?而且这样看起来是不是很累

我想你的业务需求也不是这样的吧

可以用 unpivot 实现横表转纵表
https://www.bbsmax.com/A/q4zVl3n25K/

请问一下你表数据变化是怎么变化?

图片说明
图片说明

SELECT 

ROUND(SUM(CASE WHEN DATA_ITEM_CODE='BACKN52'  THEN DATA_ITEM_VALUE ELSE '0' END),2) AS 磨煤机入口压力,ROUND(SUM(CASE WHEN DATA_ITEM_CODE='BACKN53'  THEN DATA_ITEM_VALUE ELSE '0' END),2)  AS 磨煤机加载压力,

ROUND(SUM(CASE WHEN DATA_ITEM_CODE = 'BACKN54'  THEN DATA_ITEM_VALUE ELSE '0' END), 2) AS 收粉器入口压力, ROUND(SUM(CASE WHEN DATA_ITEM_CODE = 'BACKN55'  THEN DATA_ITEM_VALUE ELSE '0' END), 2)  AS 收粉器出口压力,

 ROUND(SUM(CASE WHEN DATA_ITEM_CODE = 'BACKN56'  THEN DATA_ITEM_VALUE ELSE '0' END), 2) AS 煤粉仓重, ROUND(SUM(CASE WHEN DATA_ITEM_CODE = 'BACKN57'  THEN DATA_ITEM_VALUE ELSE '0' END), 2)  AS 废气温度

 from(SELECT * FROM TABLE_NAME WHERE WORK_TIME >= TO_CHAR('20200921' - 1) || '200000' AND WORK_TIME <'20200921'|| '200000' ) group by WORK_TIME ORDER BY WORK_TIME;

关键字 CASE WHEN...THEN..ELSE..END
分组汇总后进行纵列变横列(上边的数据、图片仅供展示)