oracle pivot in 动态,Oracle pivot in子查询的疑问

时间:2025-03-19 09:58:57

按照oracle的文档,pivot语句中in后面的列如果不固定,只能使用xml格式的返回结果,如:

...

SQL> SELECT *

2 FROM pivot_data

3 PIVOT XML

4 (SUM(sal) FOR deptno IN (ANY));

JOB DEPTNO_XML

--------- ---------------------------------------------------------------------------

ANALYST 206600

CLERK 10143020

= "SUM(SAL)">2090

30

1045

MANAGER 10269520

= "SUM(SAL)">3272.5

30

n>3135

如果不想要xml格式的结果,就只能使用把in之间的内容提前计算出来,动态拼接成sql语句,使用execute immediately动态执行。