问题与Sql女士的枢轴语法
问题描述:
管理工作室报告:关键字'for'附近的语法不正确。 PlType开始与两种类型的名称,即:2或4 实施例:20H,20D,20M,40H,40D,40M,40X等是不同类型的PlType问题与Sql女士的枢轴语法
Select *
Into #PivotTbl from
(Select Country, PlType , LEFT(PLTYPE,1) as PType
From #ToPivot) As ToPvt
Pivot
(PlType for PType in (2,4)) As Piv1
我不理解'for'附近有什么错误。当我更换
(PlType for PType in (2,4)) As Piv1
与
(max(PlType) for PType in (2,4)) As Piv1
我得到的错误:附近有语法错误 '2'。 请帮我解决这个问题。
答
2和4成为支点列,你需要围绕它们在方括号像这样:
Select *
Into #PivotTbl from
(Select Country, PlType , LEFT(PLTYPE,1) as PType
From #ToPivot) As ToPvt
Pivot
(max(PlType) for PType in ([2],[4])) As Piv1
即使你不使用max
你会得到这个错误。原因是你必须使用一个集合函数以及pivot
。
谢谢你,工作。但请你也可以告诉我,为什么我必须为Pivot提供一个聚合函数。 ([2],[4])中的PType的 (最大(PlType))作为Piv1 – 2015-03-31 10:29:26
它应该与 Pivot (PlType for PType in([2],[4] ))由于PlType是varchar类型,因此Piv1 。但是显示错误。 – 2015-03-31 10:33:21
该文档明确指出需要聚合函数。我想这是因为pivot操作用于汇总,这需要对数据执行汇总。 – 2015-03-31 10:34:26