将行输出转换为oracle中的列

convert row output to column in oracle

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;

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

使用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;