Joh*_*nic 5 sql t-sql sql-server-2008-r2
我正在运行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,因此不能成为问题.您能想到可能导致此行为的任何其他设置吗?
Alt*_*tel 13
此类问题的可能原因是您从其他源导入数据库,该数据库可能正在运行旧版本的SQL Server.无论如何,你有办法摆脱它.按照以下步骤:
以下是"属性"窗口的屏幕截图供您参考.

| 归档时间: |
|
| 查看次数: |
16408 次 |
| 最近记录: |