sql case when 多个别名
时间: 2024-08-27 19:01:11 浏览: 43
T-SQL编程基础_1
SQL中的`CASE`语句是一个非常灵活的功能,它允许你根据一系列条件来执行不同的分支操作,并且可以在`SELECT`、`WHERE`和`ORDER BY`等子句中使用。`CASE`语句有两种形式:简单形式和搜索形式。在`SELECT`查询中,简单形式的`CASE`可以用来为不同的列值分配不同的别名,这样可以在结果集中返回新的列名或者别名。
简单形式的`CASE`语句的基本语法如下:
```sql
SELECT
CASE column_name
WHEN value1 THEN alias1
WHEN value2 THEN alias2
...
ELSE default_alias
END AS alias_column_name
FROM table_name;
```
在这个语法结构中,`column_name`是你想要根据其值来提供不同别名的列名,`value1`、`value2`等是该列可能出现的值。`alias1`、`alias2`等是你想要为这些值分配的新别名。如果列值不符合任何`WHEN`条件,则使用`ELSE`子句中的`default_alias`作为别名。`alias_column_name`是你在结果集中想要显示的列名。
例如,如果你有一个`orders`表,并且想要根据订单的状态(假设状态是`'pending'`、`'shipped'`、`'delivered'`)来显示一个更易读的状态名称,你可以这样写:
```sql
SELECT
order_id,
customer_name,
CASE status
WHEN 'pending' THEN '等待支付'
WHEN 'shipped' THEN '已发货'
WHEN 'delivered' THEN '已送达'
ELSE '未知状态'
END AS order_status
FROM orders;
```
在这个例子中,`status`是原始的状态列,而`order_status`是通过`CASE`语句转换后的新列名,它将包含不同的别名,这些别名更加易于理解。
阅读全文