【问题标题】:SQL CASE Clauses with variable带有变量的 SQL CASE 子句
【发布时间】:2015-07-28 08:08:34
【问题描述】:

我收到此错误:

“=”附近的语法不正确。

代码:

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

【问题讨论】:

  • CASE WHEN T.[StatusID] IN (1,6) THEN (T.[AuditUser_ID] = 2 AND TNX.Actor = 2) END 这到底是什么意思?
  • CASE 是一个返回一个值(来自多个可能值)的 表达式 - 但是它不能返回要在 WHERE 子句中使用的代码块... .
  • 这个使用变量的 CASE 表达式在哪里,你想完成什么?
  • 你想做什么?

标签: sql sql-server tsql stored-procedures


【解决方案1】:
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

【讨论】:

  • 为什么要使用 case 表达式?您可以删除案例并使用 AND 代替
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 2018-09-13
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多