我需要使用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语句之后处理数值,我是否需要做一些不同的事情,因为我正在处理文本/字符串?
答案 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
值ENG
,TEC
和MGR
需要用单引号括起来,才能被视为常量值。