以下查询在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'.
我盯着它看着文档,但我似乎无法弄清楚我做错了什么。
答案 0 :(得分:2)
可能是数据库兼容级别:
http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx
当PIVOT和UNPIVOT用于升级到SQL Server 2005或更高版本的数据库时,数据库的兼容级别必须设置为90或更高。有关如何设置数据库兼容级别的信息,请参见sp_dbcmptlevel(Transact-SQL)。