以下陈述有什么问题?

pri*_*kar 0 t-sql sql-server sql-server-2005

当我这样做:

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
Run Code Online (Sandbox Code Playgroud)

一切正常.

当我这样做:

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
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"Msg 156, Level 15, State 1, Line 31
Incorrect syntax near the keyword 'case'."
Run Code Online (Sandbox Code Playgroud)

我的目的是为这个转换编写一个case语句而不是多个case语句.

我究竟做错了什么?

Dim*_*kis 5

用.替换你的case语句

case when col3 = '-' then 1 else 0 end
Run Code Online (Sandbox Code Playgroud)