[英]Multiple WHEN inside no-expression CASE in SQL?
DECLARE @TestVal int
SET @TestVal = 5
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
ELSE 'Other'
END
我在網上看到了這個示例代碼,但是我找不到沒有表達式並且它有多個 WHEN 的示例,所以我想知道這種類型的東西是否可以:
DECLARE @TestVal int
SET @TestVal = 5
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN (select ...) = 1 THEN 'Other Value'
WHEN (select ...) = 2 THEN 'Other Value 2'
ELSE 'Other'
END
還是我需要為每一行說 CASE WHEN?
是的,這很好,但我會垂直排列“WHEN”並更像這樣解釋:
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN @TestVal <=10 THEN 'Top 10'
WHEN @TestVAl <=25 THEN 'Top 25'
ELSE 'Other'
END
格式可能只是 markdown 故障,但您示例中的(select...)
使應該是更簡單的片段變得復雜。
案例采用以下形式
CASE WHEN Condition THEN Result
WHEN Condition2 THEN Result2
ELSE Default
END
這假設您使用 Microsoft SQL 服務器其他 DBMS 可能不同
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN @TestVal <=10 THEN 'Top 10'
WHEN @TestVAl <=25 THEN 'Top 25'
ELSE 'Other'
END
關於嵌套 case 語句,也可以這樣做(sql 中最多允許 10 個嵌套 case 語句)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.