case when多条件
时间: 2023-08-31 19:09:35 浏览: 166
在 SQL 中,可以使用 CASE WHEN 语句来实现多条件判断。其基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
其中,`condition1`、`condition2` 等表示条件,可以是任何表达式或逻辑运算符;`result1`、`result2` 等表示对应的结果,可以是任何值或表达式;`default_result` 表示如果没有条件满足时返回的默认结果,可以省略。
例如,下面的 SQL 语句使用 CASE WHEN 实现了按分数段统计学生人数的功能:
```
SELECT
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade,
COUNT(*) AS count
FROM students
GROUP BY grade;
```
该语句将学生按照分数段分为 A、B、C、D、F 五个等级,然后统计每个等级的学生人数。注意,这里使用了 AS 子句给结果列取了别名 `grade` 和 `count`。
相关问题
case when 多条件
当需要对多个条件进行判断时,可以使用 CASE WHEN 结构。其基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
```
其中,`condition1`、`condition2` 等表示条件表达式,`result1`、`result2` 等表示对应条件为真时的结果,`ELSE` 指定默认结果。
例如,以下 SQL 查询语句会根据订单金额的不同范围返回不同的折扣率:
```
SELECT order_amount,
CASE
WHEN order_amount < 1000 THEN 0.95
WHEN order_amount < 5000 THEN 0.90
WHEN order_amount < 10000 THEN 0.85
ELSE 0.80
END AS discount_rate
FROM orders;
```
在上述示例中,当订单金额小于 1000 时,折扣率为 0.95;当订单金额在 1000 至 4999 之间时,折扣率为 0.90;当订单金额在 5000 至 9999 之间时,折扣率为 0.85;其余情况下,折扣率为 0.80。
case when 多条件合并
回答: 当使用CASE WHEN语句进行多条件合并时,可以按照以下方式编写查询语句。假设我们有一个表tableName,其中包含字段a和b。如果b字段是整型,我们可以使用CONVERT函数将其转换为字符串类型,然后使用CASE WHEN语句进行多条件合并。例如,我们可以编写如下查询语句:
SELECT a,
CASE WHEN b = 1 THEN 'Condition 1'
WHEN b = 2 THEN 'Condition 2'
WHEN b = 3 THEN 'Condition 3'
ELSE 'Other Condition'
END AS merged_condition
FROM tableName
在这个例子中,我们根据b字段的值进行多条件合并,并将结果命名为merged_condition。根据不同的条件,我们可以在CASE WHEN语句中定义不同的合并结果。如果b字段的值不符合任何条件,我们可以使用ELSE子句定义一个默认的合并结果。
阅读全文