小编Joh*_*nic的帖子

'PIVOT'附近的语法不正确

我正在运行SQL Server 2008 R2.我正在尝试构建一个从表结构如下的表中获取数据的表:

company | ded_id | descr

10          1      MEDINS
10          2      LIFE
10          3      PENSN
...
10         50      DOMREL
Run Code Online (Sandbox Code Playgroud)

我需要构建一个临时表,格式如下:

company | DESC1 | DESC2 | DESC3 ... | DESC50
10        MEDINS  LIFE    PENSN       DOMREL
Run Code Online (Sandbox Code Playgroud)

所以我构建了以下查询:

    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
Run Code Online (Sandbox Code Playgroud)

因此运行此命令会出现以下错误:

消息325,级别15,状态1,行6'PIVOT'附近的语法不正确.您可能需要将当前数据库的兼容级别设置为更高的值才能启用此功能.请参阅ALTER DATABASE的SET COMPATIBILITY_LEVEL选项的帮助.

我仔细检查了数据库上的兼容级别,它已经​​设置为100,因此不能成为问题.您能想到可能导致此行为的任何其他设置吗?

sql t-sql sql-server-2008-r2

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql ×1

sql-server-2008-r2 ×1

t-sql ×1