Sta*_*Csh 4 sql-server sql-server-2008 sql-server-2008-r2
我正在尝试做一个相当符号的支点.这个按预期运行:
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
Run Code Online (Sandbox Code Playgroud)
这个给出错误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
Run Code Online (Sandbox Code Playgroud)
经过多次试验和错误后,我得到了第一个运行...有一个原因,例如可能不允许整数值作为列名吗?谢谢..
您应该始终在列名称 周围放置方括号[]:
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
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
第一个字符必须是以下之一:
如果是其他任何东西,那么您将需要使用方括号. []
| 归档时间: |
|
| 查看次数: |
3037 次 |
| 最近记录: |