我对子查询和案例陈述有疑问
我在同一个查询中有两个案例陈述:
问题1:可以在同一查询的后续案例陈述中引用案例语句生成的字段吗?
问题2:为什么我的查询在单独的case语句中有子查询只需要5秒钟,但当子查询在包含4-5个其他语句的case语句中时长2分钟检查?
第一个案例陈述
CASE WHEN (SELECT xxx.xxx from xxx) THEN 'Y'
END AS "Match_Ind",
第二个案例陈述
CASE WHEN condition 1 = true THEN 'cond1'
WHEN condition 2 = true THEN 'cond2'
WHEN Match_Ind = 'Y' THEN 'matched'
END AS "Match Detail"
答案 0 :(得分:0)
您是否尝试过以下方面的内容:
select case Bar1 ... end as Bar2, ...
from ( select case Foo1 ... end as Bar1, ... from ... )
可以根据需要JOIN
使用其他表格。
答案 1 :(得分:0)
您应该考虑发布完整查询,但是如果要在另一个CASE
语句中引用第一个CASE
的结果,那么您可以将其包装在类似于SELECT
的{{1}}中这样:
select
CASE
WHEN condition 1 = true THEN 'cond1'
WHEN condition 2 = true THEN 'cond2'
WHEN Match_Ind = 'Y' THEN 'matched'
END AS Match Detail
from
(
SELECT CASE
WHEN conditionHere -- (SELECT xxx.xxx from xxx)
THEN 'Y'
END AS Match_Ind,
othercols
from yourtable
) x