2015-07-28 43 views
-2

SQL CASE子句我得到这个错误:具有可变

Incorrect syntax near '='.

代码:

WHERE 
    T.[ID] = -9769 
    AND TNS.Active = 1 
    AND CASE 
      WHEN T.[StatusID] IN (1,6) 
       THEN (T.[AuditUser_ID] = 2 AND TNX.Actor = 2) 
     END 
+1

'CASE WHEN T. [StatusID] IN(1,6)THEN (T 。[AuditUser_ID] = 2 AND TNX.Actor = 2) END'这是什么意思? – Raj

+2

'CASE'是一个**表达式**,它返回一个值(来自多个可能的值) - 但它不能返回在你的WHERE子句中使用的代码块...... –

+0

这个CASE表达式在哪里使用变量,你想完成什么? –

回答

0
WHERE 
    T.[ID] = -9769 
    AND TNS.Active = 1 
    AND 1 = CASE 
      WHEN T.[StatusID] IN (1,6) 
      and (T.[AuditUser_ID] = 2 AND TNX.Actor = 2) then 1 else 0 
     END 
+0

你为什么要使用案例表达式?您可以删除案件,并使用*和*代替 –

+0

非常感谢。其实我是新来的SQL。 –