0
當我這樣做:以下聲明有什麼問題?
select col1,case when [pivot1]=1 then '-' else '' end [pivot1],
case when [pivot2]=1 then '-' else '' end [pivot2]
from
(select col1,col2,col3 from tbl) as c
pivot
(sum(col3) for col2 in
([pivot1],[pivot2]))as pvt
,一切工作正常。
當我這樣做:
select col1,[pivot1],[pivot2]
from
(select col1,col2,col3 from tbl) as c
pivot
(sum(case col3 when '-' then 1 else 0 end) for col2 in
([pivot1],[pivot2]))as pvt
我得到以下錯誤:
"Msg 156, Level 15, State 1, Line 31
Incorrect syntax near the keyword 'case'."
我的目的是寫一個case語句,而不是多個做這種轉換。
我在做什麼錯?
我仍得到相同的錯誤消息 – 2009-10-20 05:40:11
更換你的case語句我想接近它有點不同: DECLARE @T TABLE(資金量,RegionId NVARCHAR(5)); INSERT INTO @T SELECT \t SUM(CASE WHEN COL3!= 0 THEN ELSE 1 0 END) ,\t COL2 FROM \t TBL GROUP BY COL2 SELECT * FROM @T PIVOT ( SUM(Amount) FOR [RegionId] IN([US],[CA]) )AS p – 2009-10-20 06:50:52
但是我無法插入值..它已經在表中。從數據庫 – 2009-10-20 08:38:38