sql case when 的两种写法
时间: 2023-09-02 08:08:39 浏览: 149
1. 标准写法:
```
SELECT
column_1,
column_2,
CASE
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
...
ELSE result_n
END AS column_name
FROM
table_name;
```
2. 简化写法:
```
SELECT
column_1,
column_2,
CASE column_name
WHEN value_1 THEN result_1
WHEN value_2 THEN result_2
...
ELSE result_n
END
FROM
table_name;
```
其中,第一种写法的优点是可读性强,缺点是代码较长;第二种写法相对简洁,但可读性稍差。可以根据实际情况选择适合的写法。
相关问题
sql case when 多条件 写法
SQL的CASE WHEN语句可以处理多条件,可以使用嵌套或者逻辑运算符来实现。
以下是两种常见的多条件写法:
1. 嵌套CASE WHEN语句:
```
SELECT column1,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END AS new_column
FROM table_name;
```
2. 逻辑运算符:
```
SELECT column1,
CASE
WHEN condition1 AND condition2 THEN result1
WHEN condition3 OR condition4 THEN result2
...
ELSE default_result
END AS new_column
FROM table_name;
```
在这两种写法中,可以使用多个WHEN条件和一个ELSE条件,ELSE条件是可选的,用于处理未满足任何WHEN条件的情况。需要注意的是,条件的顺序很重要,因为只有第一个满足条件的结果会被返回。
带传入值的sql case when 多条件 写法
下面是带传入值的 SQL Case When 多条件写法的示例:
```sql
SELECT
CASE
WHEN column_name = value1 THEN result1
WHEN column_name = value2 THEN result2
ELSE default_result
END
FROM table_name
WHERE condition = input_value;
```
其中,`column_name` 是用于比较的列名,`value1`、`value2` 等是要比较的值,`result1`、`result2` 等是对应的结果,`default_result` 是如果没有匹配到任何条件时的默认结果。`input_value` 是传入的值,`condition` 则是用于比较的条件。
例如,假设有一个表 `students` 包含学生的姓名和分数,现在需要根据输入的学生姓名来返回对应的分数,可以使用以下 SQL 语句:
```sql
SELECT
CASE
WHEN name = 'Tom' THEN score
WHEN name = 'Jerry' THEN score
ELSE 0
END
FROM students
WHERE name = 'Tom';
```
这里,如果输入的学生姓名是 `'Tom'` 或 `'Jerry'`,则返回对应的分数 `score`;否则返回默认值 `0`。同时,只返回学生姓名为 `'Tom'` 的记录。
阅读全文