Sql server 2012 案例陈述don';我不能正常工作

Sql server 2012 案例陈述don';我不能正常工作,sql-server-2012,case,Sql Server 2012,Case,SQL SERVER 2012 在我的案例中服务器与“=”冲突。 为什么它不起作用? 这是我的密码: SELECT TM.CODE_3 as Account, TM.NAME_3, TM.CODE_5, case TM.Line when TM.CODE_5 = '9491'--and RS.SUB1Sel = ('05.11 Penalties and fines') then 'R0820-5' else TABLE_MAIN_new.Line end FROM TABLE_

SQL SERVER 2012 在我的
案例中
服务器与“=”冲突。 为什么它不起作用? 这是我的密码:

SELECT 
TM.CODE_3 as Account,
TM.NAME_3,
TM.CODE_5,
case  TM.Line
 when TM.CODE_5 = '9491'--and RS.SUB1Sel = ('05.11 Penalties and fines')
  then 'R0820-5'
 else TABLE_MAIN_new.Line
 end 
FROM TABLE_Main_new  as TM
left join Danone_Main as DM
on TM.CODE_3 = DM.CODE_3
left join Rep_Struct_2012_N as RS
on TM.CODE_3 = RS.CODE_3
“=”附近的语法不正确。

试试这个

case  
  when TM.CODE_5 = '9491'--and RS.SUB1Sel = ('05.11 Penalties and fines')
  then 'R0820-5'
else TABLE_MAIN_new.Line
End
这应该起作用:

CASE TM.CODE_5
  WHEN '9491'--and RS.SUB1Sel = ('05.11 Penalties and fines')
  THEN 'R0820-5'
ELSE TABLE_MAIN_new.Line
END

使用CASE表达式时,When子句应仅为一个值(true/false,具体取决于CASE表达式)。如果未使用大小写表达式,则WHEN应为布尔表达式。更多信息。

非常感谢!我不明白为什么在一个接一个地写TM.Line时它不起作用……当我取消注释其他字符串时,代码就不起作用了。还有一个问题。我可以这样写:
CASE TM.code_5当'9491'、'9492'和RS.SUB1Sel=('05.11处罚和罚款')然后是'R0820-5'ELSE表_MAIN_new.Line END