我正在尝试做一个相当符号的支点。这个按预期运行:
with cte as
(
select Symbol, TradeDate, 'Per' + cast(Period as CHAR(3)) Per, Value
from tblDailySMA
)
select * from cte
pivot
(Max(Value) for Per in (Per5,Per10,Per15,Per20,Per30,Per40,Per50,Per60,Per80,Per100,Per110,Per120,
Per150,Per200)) pvt
并且这个给出错误Incorrect syntax near 5
(并突出显示'for Period in'之后的第一个值(5):
with cte as
(
select Symbol, TradeDate, Period, Value
from tblDailySMA
)
select * from cte
pivot
(Max(Value) for Period in (5,10,15,20,30,40,50,60,80,100,110,120,150,200)) pvt
我得到了第一个在经过多次试验和错误后运行的...是否有一个原因,例如可能不允许整数值作为列名?感谢..
答案 0 :(得分:6)
您应始终在column names []
附近放置方括号:
with cte as
(
select Symbol, TradeDate, Period, Value
from tblDailySMA
)
select * from cte
pivot
(
Max(Value) for Period in ([5],[10],[15],[20],[30],[40],[50],[60],[80],[100],[110],[120],[150],[200])
) pvt
来自MSDN:
第一个字符必须是以下之一:
如果是其他任何内容,则需要使用方括号。 []