sql CASE WHEN
时间: 2023-12-06 12:04:48 浏览: 83
SQL中的CASE WHEN语句是一种条件表达式,它可以根据条件返回不同的结果。它有两种形式:一种是基于值的形式,另一种是基于条件的形式。基于值的形式如下:
```
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
基于条件的形式如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
其中,expression是要比较的表达式,value1、value2等是expression可能取到的值,result1、result2等是对应的结果。condition1、condition2等是要判断的条件,result1、result2等是对应的结果。default_result是当没有匹配到任何条件时返回的默认结果。
CASE WHEN语句可以用于SELECT、WHERE、ORDER BY等语句中,可以根据需要进行灵活使用。
相关问题
sql case when
In SQL, the `CASE WHEN` statement is used to perform conditional logic. It is used to evaluate a set of conditions and return a value based on the result of the evaluation.
The basic syntax for the `CASE WHEN` statement is as follows:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE default_result
END
```
Here's a breakdown of what each part of the syntax does:
- `CASE` begins the `CASE WHEN` statement.
- `WHEN` specifies the condition to be evaluated.
- `THEN` specifies the value to be returned if the condition is true.
- `ELSE` specifies the value to be returned if none of the conditions are true.
- `END` ends the `CASE WHEN` statement.
Here's an example that uses `CASE WHEN` to classify products in a table based on their prices:
```
SELECT product_name,
price,
CASE
WHEN price < 10 THEN 'Cheap'
WHEN price >= 10 AND price < 50 THEN 'Moderate'
WHEN price >= 50 THEN 'Expensive'
ELSE 'Unknown'
END AS price_category
FROM products;
```
In this example, the `CASE WHEN` statement evaluates the `price` column for each row in the `products` table. If the price is less than 10, it is classified as "Cheap". If the price is between 10 and 50, it is classified as "Moderate". If the price is 50 or greater, it is classified as "Expensive". If the price is not provided, it is classified as "Unknown".
SQL case when
SQL中的CASE WHEN语句用于根据一定的条件执行不同的逻辑。它类似于其他编程语言中的条件语句(如if-else或switch-case)。
CASE WHEN语句的基本语法如下所示:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
```
在这个语法中,您可以指定多个条件和相应的结果。如果条件与表达式匹配,则返回相应的结果。如果没有条件匹配,则返回ELSE子句中指定的结果。ELSE子句是可选的,如果没有匹配的条件,它将返回NULL。
以下是一个示例,说明了如何使用CASE WHEN语句:
```sql
SELECT id, name,
CASE
WHEN age < 18 THEN 'Minor'
WHEN age >= 18 AND age < 65 THEN 'Adult'
ELSE 'Senior'
END AS category
FROM customers;
```
在上面的示例中,根据客户的年龄将其划分为三个不同的类别:未成年人、成年人和老年人。结果将作为新的“category”列返回。
请注意,CASE WHEN语句还可以与其他SQL语句(如SELECT、UPDATE或INSERT)一起使用,以便根据特定条件执行不同的操作。
阅读全文
相关推荐











