sql内where里case的用法
时间: 2023-07-06 11:30:06 浏览: 79
sql中case语句的用法浅谈
5星 · 资源好评率100%
当在 SQL 中使用 WHERE 子句时,我们可以使用 CASE 表达式在条件语句中进行判断,以实现更灵活的查询条件。以下是一个示例:
假设有一个表格 orders,包含以下列:order_id, customer_id, order_date, amount。现在想要查询出订单金额在 1000 到 5000 之间的订单信息,并且将这些订单按照金额大小分类。
可以使用如下的 SQL 语句:
```
SELECT
order_id,
customer_id,
order_date,
amount,
CASE
WHEN amount < 1000 THEN 'small'
WHEN amount >= 1000 AND amount < 5000 THEN 'medium'
WHEN amount >= 5000 THEN 'large'
END AS amount_category
FROM
orders
WHERE
CASE
WHEN amount >= 1000 AND amount < 5000 THEN 1
ELSE 0
END = 1;
```
这个语句中,使用了一个 CASE 表达式,在 SELECT 子句中根据订单金额的大小来分类。根据不同的金额范围,分别将订单归为 'small'、'medium'、'large' 三个类别,并将分类结果作为一个新的列(amount_category)返回。
在 WHERE 子句中,也使用了一个 CASE 表达式,根据订单金额的范围判断是否满足查询条件。如果订单金额在 1000 到 5000 之间,则返回 1,否则返回 0。最后,将这个 CASE 表达式的结果与 1 进行比较,如果相等,则表示该订单符合查询条件。
这样,我们就可以实现根据订单金额范围进行查询,并且将查询结果按照金额大小分类的功能。
阅读全文