[英]Better use of redundant subquery in sql- case
我有一個關於SQL語句的問題:是否可以“定義子查詢”以防萬一。 這聽起來有點令人困惑,但通過以下示例,我認為我的想法很清楚:
select
Column1,
Column2,
Case
WHEN <BigSubquery> > 0 THEN <BigSubquery>
ELSE 0
END
from ...
我該怎么做,或可以使用什么。 我有一個這樣的查詢,效果很好,但是它是一個巨大的代碼,無法用於維護。
如果使用子查詢,則應將條件放在子查詢中。 例如,如果您有:
(select sum(x) from . . . )
然后做:
(select (case when sum(x) > 0 then sum(x) else 0 end) from . . .
如果您將查詢重寫為
select
Column1,
Column2,
Case
WHEN Column3 > 0 THEN Column3
ELSE 0
END
from
(
select
Column1,
Column2,
BigSubquery as Column3
from ...
)
t
然后,您避免重復“ BigSubquery”,但是您確實重復了選擇列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.