带WHERE子句的SQL查询CASE语句

艾米

我建立了利用多条件CASE语句的以下查询这是拥有多条件CASE语句的正确/最佳方法吗?

只要不在where中引用CASE语句,它就可以工作我收到“无效的列名“方案”。”

如何在查询的WHERE部分中引用ScenarioA?

select 
    TPID
    ,(CASE WHEN 
        ([AOppty] > 0) and ([Entitlements] = 0) and ([B Agreement] = 0 and [C Agreement] = 0)
    THEN 1 ELSE 0 END) as ScenarioA
from RulesEngine R
--where ScenarioA = 1
谢尔盖·卡里尼琴科(Sergey Kalinichenko)

SQL Server允许您为此使用公用表表达式:

WITH
    Rules (TPID, ScenarioA)
AS (
    SELECT 
        TPID
    ,   (CASE WHEN 
            ([AOppty] > 0) AND ([Entitlements] = 0) AND ([B Agreement] = 0 and [C Agreement] = 0)
            THEN 1 ELSE 0 END
        ) AS ScenarioA
)
SELECT
    TPID, ScenarioA
WHERE
    ScenarioA = ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章