我建立了利用多条件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
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] 删除。
我来说两句