在WHERE子句中创建case表达式是一种条件逻辑的方式,用于根据不同的条件返回不同的结果。它可以在查询语句中根据特定的条件动态地生成不同的过滤条件。
在SQL中,可以使用CASE表达式来创建一个值等于多个值的条件。CASE表达式有两种形式:简单CASE表达式和搜索CASE表达式。
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END
其中,expression是要比较的表达式,value1、value2等是可能的值,result1、result2等是对应值的结果,ELSE子句是可选的,用于指定当没有匹配的值时的默认结果。
例如,假设有一个名为"status"的字段,我们想根据不同的状态值进行过滤,可以使用简单CASE表达式:
SELECT *
FROM table_name
WHERE CASE status
WHEN 'A' THEN 'Active'
WHEN 'I' THEN 'Inactive'
ELSE 'Unknown'
END = 'Active';
上述查询将返回"status"字段值为'A'的所有记录。
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
其中,condition1、condition2等是条件表达式,result1、result2等是对应条件的结果,ELSE子句是可选的,默认结果。
例如,假设有一个名为"age"的字段,我们想根据不同的年龄范围进行过滤,可以使用搜索CASE表达式:
SELECT *
FROM table_name
WHERE CASE
WHEN age < 18 THEN 'Underage'
WHEN age >= 18 AND age < 65 THEN 'Adult'
ELSE 'Senior'
END = 'Adult';
上述查询将返回"age"字段值在18到65之间的所有记录。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云