[英]SQL Case inside WHEN
也許這很愚蠢,但是我們可以在另一個案例的WHEN里面寫一個案例嗎?
下面的代碼為我工作,但我不確定這是否正確。
SELECT
(SUM(CASE
WHEN (
CASE
WHEN r.status < b.status
THEN r.status
ELSE b.status
END
) = '4'
THEN 1
ELSE 0
END)
) AS WORKED
FROM
tbl1 r, tbl2 b
關於嵌套案例的所有示例都類似於THEN內的CASE,因此我不確定這是否是一個好習慣。 有沒有更好的方法來獲得相同的結果?
是的你可以。 MSDN還通知我們,在SQL SERVER中,彼此之間最多只能嵌入10個CASE表達式。 奇怪的是,對ORACLE的搜索對這一潛在限制產生了負面影響。 可能重要的是要注意。
當然,您也可以使用更多的WHEN語句(在ORACLE中最多為255),但這僅在不需要嵌套邏輯(例如比較兩個不同的列值)的情況下才有效。
來源: https : //msdn.microsoft.com/zh-cn/library/ms181765.aspx http://www.techonthenet.com/oracle/functions/case.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.