UNPIVOT声明在2012年有效,但在2005年没有

时间:2014-05-22 02:49:49

标签: tsql sql-server-2005

以下查询在SQL Server 2012和2014中正常工作,但在2005年失败:

SELECT 
    MANDT,
    SCHGRUP,
    SPROG,
    SCHNR,
    WkDay,
    SHIFTID 
FROM TC38A
UNPIVOT (ShiftID FOR WkDay IN (TPROG1,TPROG2,TPROG3,TPROG4,TPROG5,TPROG6,TPROG7)) AS U
WHERE SCHGRUP = 'L1'

错误消息:

Msg 156, Level 15, State 1, Line 9
Incorrect syntax near the keyword 'FOR'.

我盯着它看着文档,但我似乎无法弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:2)

可能是数据库兼容级别:

http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

  

当PIVOT和UNPIVOT用于升级到SQL Server 2005或更高版本的数据库时,数据库的兼容级别必须设置为90或更高。有关如何设置数据库兼容级别的信息,请参见sp_dbcmptlevel(Transact-SQL)。