数据透视表错误 56901 非常量表达式

use*_*062 3 sql oracle pivot

我需要使用表中的数据在Division_IDRow 和Job_IDColumn 中创建一个平均工资数据透视employees2表。到目前为止,我有:

SELECT * 
FROM (
SELECT Division_ID, Salary, Job_ID
FROM Employees2
)
PIVOT (
AVG(Salary) FOR Job_ID IN (ENG, TEC, MGR)
)
ORDER BY Job_ID
Run Code Online (Sandbox Code Playgroud)

我收到错误消息,“数据透视|反透视值不允许使用非常量表达式”

我究竟做错了什么?我可以在网上找到的大多数示例都在 IN 语句之后处理数值,因为我使用文本/字符串,所以我需要做一些不同的事情吗?

Nis*_*hia 5

使用下面的查询。

SELECT *    FROM (
    SELECT Division_ID, Salary, Job_ID
    FROM Employees2
)  
PIVOT 
(
     AVG(Salary) FOR Job_ID IN 
    ('ENG', 'TEC', 'MGR')     ------------> Change done here.....
)
ORDER BY Job_ID
Run Code Online (Sandbox Code Playgroud)

ENG,TECMGR需要用单引号括起来才能被视为常量值。