【发布时间】:2014-02-24 08:13:25
【问题描述】:
我正在运行 SQL Server 2008 R2。我正在尝试构建一个从如下结构的表中获取数据的表:
company | ded_id | descr
10 1 MEDINS
10 2 LIFE
10 3 PENSN
...
10 50 DOMREL
我需要建立一个临时表,格式如下:
company | DESC1 | DESC2 | DESC3 ... | DESC50
10 MEDINS LIFE PENSN DOMREL
所以我构建了以下查询:
SELECT *
FROM (
SELECT company,'DESC'+CAST(ded_id as VARCHAR(2)) AS DedID,descr
FROM deduction
) deds
PIVOT (MAX(descr)FOR DedID IN([DESC1],[DESC2],[DESC3])) descs
所以运行它会出现以下错误:
消息 325,第 15 级,状态 1,第 6 行 “PIVOT”附近的语法不正确。您可能需要将当前数据库的兼容级别设置为更高的值才能启用此功能。请参阅 ALTER DATABASE 的 SET COMPATIBILITY_LEVEL 选项的帮助。
我仔细检查了数据库的兼容性级别,它已经设置为 100,所以这不是问题。您能想到任何其他可能导致此行为的设置吗?
【问题讨论】:
-
我的 SQL Server 2008 R2 SP1 (10.50.2500) 服务器无法重现此错误;查询工作正常并产生所需的输出。
标签: sql tsql sql-server-2008-r2