CASE WHEN 简单值与范围判断
CASE 表达式有两种写法,一种用于等值匹配,一种用于范围判断。
简单值匹配(CASE 后跟字段)
这种情况下 CASE 后面直接跟字段名,每个 WHEN 后面是一个具体的值,相当于 = 比较:
SELECT [id]
,[name]
,CASE [type] WHEN 1 THEN '高级' WHEN 2 THEN '中级' ELSE '初级' END AS typename
FROM [Test].[dbo].[Category]
GOCode language: PHP (php)
范围判断(CASE 后不跟字段)
如果是范围比较(如 >、>=、< 等),CASE 后面不需要字段,直接在 WHEN 里面写条件表达式:
SELECT [id]
,[name]
,CASE WHEN [type] > 5 THEN '高级' WHEN [type] > 1 THEN '中级' ELSE '初级' END AS typename
FROM [Test].[dbo].[Category]
GOCode language: PHP (php)
注意:
CASE表达式按顺序匹配,一旦满足某个WHEN条件就返回对应结果,不再继续判断后续分支。因此范围判断时需要注意条件的先后顺序,范围大的应放在后面,避免被范围小的条件提前拦截。
Previous: ISNULL 函数用法
Next: PRINT