在oracle中将行输出转换为列

Posted

技术标签:

【中文标题】在oracle中将行输出转换为列【英文标题】:convert row output to column in oracle 【发布时间】:2019-12-06 17:20:26 【问题描述】:

with cte1 as 
(
select count(*) as count_emp from emp; 
),
 cte2 as 
(
select count(*)  as count_dept from dept; 
),
 cte3 as 
(
select count(*)  as count_hr  from hr; 
)
select count_emp,count_dept,count_hr from cte1,cte2,cte3;

我想在一列中输出三行。 有关更多详细信息,请参见图片。

【问题讨论】:

【参考方案1】:

使用union all:

select count_emp from cte1
union all
select count_dept from cte2
union all
select count_hr from cte3;

请注意,结果不保证按任何特定顺序排列。我强烈建议您标记行:

select 'emp', count_emp as cnt from cte1
union all
select 'dept', count_dept from cte2
union all
select 'hr', count_hr from cte3;

【讨论】:

以上是关于在oracle中将行输出转换为列的主要内容,如果未能解决你的问题,请参考以下文章

在 Spark SQL (pyspark) 中将行转置为列

在 SQL 中将行显示为列

在 ORACLE SQL 中将一组列转换为行

在实体框架中将行转换为列

在 SQL 中将行转换为列

在R中将行转换为列