将行输出转换为oracle中的列

问题描述 投票:0回答:1

enter image description here

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;

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

sql oracle oracle11g oracle10g
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.