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