2024年3月14日发(作者:)

sql中case when用法详解

SQL中的CASE WHEN语句是一种条件表达式,用于根据条件执行不同的操作。它

允许您在查询中根据满足的条件返回不同的结果。

CASE WHEN语句的结构如下:

```sql

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE result

END

```

在这个结构中,您可以根据条件列表指定多个WHEN子句。每个WHEN子句包含一

个条件和一个与之关联的结果。如果条件满足,对应的结果将被返回。如果没

有任何条件满足,ELSE子句中的默认结果将被返回。

以下是一些示例,说明CASE WHEN语句的用法:

1. 根据列值返回不同的结果:

```sql

SELECT

CASE column_name

WHEN 'value1' THEN 'Result A'

WHEN 'value2' THEN 'Result B'

ELSE 'Other Result'

END AS result_column

FROM table_name;

```

在这个示例中,根据column_name列的值,返回不同的结果。如果值为'value1',

返回'Result A';如果值为'value2',返回'Result B';否则,返回'Other Result'。

2. 根据查询结果集中的值返回不同的结果:

```sql

SELECT

CASE

WHEN column1 > 100 THEN 'Value is greater than 100'

WHEN column2 < 50 THEN 'Value is less than 50'

1

ELSE 'Value is between 50 and 100'

END AS result_column

FROM table_name;

```

在这个示例中,根据查询结果集中的列值(column1和column2)进行判断,返

回不同的结果。如果column1的值大于100,返回'Value is greater than 100';

如果column2的值小于50,返回'Value is less than 50';否则,返回'Value is

between 50 and 100'。

3. 根据多个条件返回不同的结果:

```sql

SELECT

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

WHEN condition3 THEN result3

ELSE result4

END AS result_column

FROM table_name;

```

在这个示例中,根据满足的条件列表,返回不同的结果。如果满足condition1,

返回result1;如果满足condition2,返回result2;如果满足condition3,返回

result3;否则,返回result4。您可以根据需要添加更多的WHEN子句来处理不

同的条件和结果。

2