题
DECLARE @TestVal int
SET @TestVal = 5
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
ELSE 'Other'
END
我看到这个代码示例在线,但我找不到那里有没有表达一个例子,它有一个以上的情况下,所以我想知道,如果这种类型的事情是确定:
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时每行?
解决方案
案例采用以下形式
CASE WHEN Condition THEN Result
WHEN Condition2 THEN Result2
ELSE Default
END
修改
这假定您使用Microsoft SQL Server等数据库管理系统可能会有所不同。
其他提示
是的,这很好,但我会排队的“当” s垂直和解释更是这样的:
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN @TestVal <=10 THEN 'Top 10'
WHEN @TestVAl <=25 THEN 'Top 25'
ELSE 'Other'
END
在格式化可能只是一个降价毛刺,但在复杂的例子中,(select...)
什么应该是一个简单的代码片段。
SELECT
CASE
WHEN @TestVal <=3 THEN 'Top 3'
WHEN @TestVal <=10 THEN 'Top 10'
WHEN @TestVAl <=25 THEN 'Top 25'
ELSE 'Other'
END
在关于嵌套case语句可以做到这一点,以及(直至10条嵌套case语句允许SQL内)
不隶属于 StackOverflow