就像标题所示,我正在努力实现这样的目标
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个查询的备份计划会实现相同的目标,但如果可能的话我想避免这种方法。
由于
答案 0 :(得分:1)
您只能在上一级使用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
。类似的东西:
ng new