2015-03-31 39 views
0

管理工作室報告:關鍵字'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

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

+0

謝謝你,工作。但請你也可以告訴我,爲什麼我必須爲Pivot提供一個聚合函數。 ([2],[4])中的PType的 (最大(PlType))作爲Piv1 – 2015-03-31 10:29:26

+0

它應該與 Pivot (PlType for PType in([2],[4] ))由於PlType是varchar類型,因此Piv1 。但是顯示錯誤。 – 2015-03-31 10:33:21

+1

該文檔明確指出需要聚合函數。我想這是因爲pivot操作用於彙總,這需要對數據執行彙總。 – 2015-03-31 10:34:26