我试图在ename
中的MANAGER
,SALESMAN
,ANALYST
,CLERK
的4列中显示SCOTT
oracle 11g中的模式,其中只有管理者的名字显示在第1列,salesmans显示在第2列,等等。
到目前为止,我已经这样做了:
select *
from (select job,
ename
from emp)
pivot (listagg(ename,',') within group(order by ename)
for job in ('MANAGER','CLERK','ANALYST','SALESMAN'))
它给了我想要的结果,但我想要在不同的行而不是单个列值中的多个值
任何人都可以帮我在PIVOT的新列中显示列名,因为它只显示聚合函数,这些函数通常会返回我需要多行的单行。
提前多多感谢。
答案 0 :(得分:0)
如果您不想总结它,我建议使用decode:
select decode(job,'MANAGER',ename) Manager,
decode(job,'CLERK',ename) CLERK,
decode(job,'CLERK',ename) CLERK,
decode(job,'SALESMAN',ename) SALESMAN
from emp;