[英]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.