我们如何水平改变“选择”查询显示的列数(以水平顺序)。 sql输出在水平序列中仅显示2列,并将下一列按两组分组移动到下一行,如下所示:
NAME | EMP.NO
-----------
DEPT | LOC
我希望它在一行中显示为:
NAME | EMP.NO | DEPT NO | LOC
答案 0 :(得分:0)
嗯,可能你正在寻找这个:
1º
create table TestTable (id number, name varchar2(10))
insert into TestTable values (1, 'John')
insert into TestTable values (2, 'Mckensy')
insert into TestTable values (3, 'Valneech')
insert into TestTable values (4, 'Zeebra')
2º
select 'id', LISTAGG(id, ' ') WITHIN GROUP (ORDER BY name)
from testtable
union
select 'name', LISTAGG(name, ' ') WITHIN GROUP (ORDER BY name)
from testtable ;
其实我不知道你使用的是哪个Oracle版本。
您可以使用PIVOT
子句,可能会有所帮助。
希望它有效。