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

时间:2014-11-05 01:24:19

标签: sql oracle pivot

我需要使用Division_ID表中的数据创建一个Job_ID的平均薪水数据表作为行,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

我收到错误,“不允许使用非常量表达式| pivot | unpivot values”

我做错了什么?我在网上找到的大多数例子都是在IN语句之后处理数值,我是否需要做一些不同的事情,因为我正在处理文本/字符串?

1 个答案:

答案 0 :(得分:3)

使用以下查询。

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

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