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行)
你有错误的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)
归档时间: |
|
查看次数: |
51073 次 |
最近记录: |