[英]Select sub query if another sub-query returns true\false
就像标题所暗示的那样,我正在努力实现这样的目标
SELECT
(<sub query>) AS some_result,
some_other_result = CASE WHEN some_result > 0 THEN (<another super heavy subquery>) ELSE NULL END
FROM some_table
而输出将是这样的
+-----------------------------------------+
+ some_result + some_other_result +
+-----------------------------------------+
+ 0 + NULL +
+-----------------------------------------+
+ 6.7 + 3.182738998 +
+-----------------------------------------+
我想这样做是因为some_result
不会经常发生,但是当这样做时,它会使查询速度变慢。
我有一个使用2个查询的备份计划,这将实现相同的目的,但是如果可能的话,我想避免这种方法。
谢谢
您只能在较高级别中使用some_result
,而不能在分配位置使用它。 就像是:
select
a.*,
some_other_result =
CASE WHEN a.some_result > 0 THEN (<another super heavy
subquery>)
ELSE NULL END
from
(SELECT
(<sub query>) AS some_result
FROM some_table) a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.