'1'附近的语法不正确.期待ID,QUOTED_ID或'.' SQL Pivot出错

Gre*_*reg 4 sql sql-server pivot pivot-table sql-server-2008

我有一张大学统计数据表,如下所示:

StatID | UniversityID | StatValue
1      | 1            | 100
2      | 1            | 90
3      | 1            | 80
1      | 2            | 50
2      | 2            | 55
Run Code Online (Sandbox Code Playgroud)

我想查询返回这样的内容:

(Rows are StatIDs, Columns are UniversityIDs)
StatID | 1             | 2             | 3
1      | 100           | 50            | NULL
2      | 90            | 55            | NULL
3      | 80            | NULL          | NULL
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

SELECT StatID, 1, 2, 3
FROM 
    (SELECT StatID, UniversityID, StatValue FROM @table) up
PIVOT 
    (MAX(StatValue) FOR UniversityID IN (1, 2, 3)) AS pvt
ORDER BY StatisticID;
Run Code Online (Sandbox Code Playgroud)

我说错了FOR UniversityID IN (1,:

Incorrect syntax near '1'. Expecting ID, QUOTED_ID, or '.'.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?它是否与int列标题有关?

我将使用~26,000行(约300列和~3,000行)

jmo*_*eno 9

你有错误的synatx:

SELECT StatisticID, 1, 2, 3
FROM
     (SELECT StatisticID, UniversityID, Value
     FROM @table) up
PIVOT
     (MAX(Value) FOR UniversityID IN ([1], [2], [3])) AS pvt
ORDER BY StatisticID;
Run Code Online (Sandbox Code Playgroud)