sql中case when的用法
时间: 2024-04-09 08:26:43 浏览: 150
在SQL中,CASE WHEN语句是一种条件表达式,用于根据不同的条件返回不同的结果。它的基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
```
其中,condition1、condition2等是条件表达式,result1、result2等是对应条件为真时返回的结果。ELSE子句是可选的,用于指定当所有条件都不满足时的默认返回结果。
下面是一个例子,假设有一个名为students的表,其中包含学生的姓名和成绩:
```
SELECT name,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS grade
FROM students;
```
以上查询将根据学生的成绩返回相应的等级,如果成绩大于等于90,则返回"优秀",如果成绩大于等于80,则返回"良好",以此类推。如果成绩都不满足以上条件,则返回"不及格"。
相关问题
SQL中case when用法
在SQL中,`CASE WHEN` 是一个条件表达式,它用于根据一个或多个条件(`WHEN`)返回不同结果(`THEN`)。这个结构常用于数据转换、计算或简单的条件逻辑。其基本语法如下:
```sql
CASE
WHEN condition1 THEN result1
[WHEN condition2 THEN result2]
[ELSE default_result]
END
```
- `condition1`, `condition2`: 这些是布尔表达式,如果它们为真,则执行相应的`result1`或`result2`。
- `result1`, `result2`: 当条件满足时,返回的结果值。可以是常量、字段值或表达式。
- `ELSE`: 如果所有`WHEN`条件都不成立,执行此部分的代码,返回`default_result`。
例如,假设我们有一个销售表,我们可以使用`CASE WHEN`来计算每个订单的折扣金额:
```sql
SELECT
OrderID,
ProductName,
Amount,
CASE
WHEN DiscountPercent > 0 THEN Amount * (1 - DiscountPercent/100)
ELSE Amount
END AS DiscountedAmount
FROM Sales;
```
这里,如果`DiscountPercent`大于0,那么会计算折扣后的金额,否则保持原价。
sql 中case when 用法
在 SQL 中,CASE WHEN 是一种条件表达式,用于根据条件返回不同的值。其基本语法如下:
```
CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
其中,condition1、condition2 等是条件表达式,result1、result2 等是对应条件成立时返回的结果,default_result 是当所有条件都不成立时返回的默认结果。
例如,以下 SQL 语句将根据订单金额的大小返回不同的等级:
```
SELECT order_id, order_amount,
CASE WHEN order_amount >= 1000 THEN 'VIP'
WHEN order_amount >= 500 THEN 'Gold'
ELSE 'Regular'
END AS customer_level
FROM orders;
```
阅读全文