mysql case when 后行转列
时间: 2024-08-13 09:02:45 浏览: 71
在MySQL中,CASE WHEN语句用于根据特定条件对一列或多列的数据进行条件判断并返回不同的值。如果想要将一行数据转化为多列(即所谓的"列转行"或"扁平化"操作),你可以使用UNION ALL和CASE WHEN的组合。这里是一个简单的例子:
```sql
SELECT
CASE
WHEN condition_1 THEN 'value_1'
WHEN condition_2 THEN 'value_2'
ELSE 'default_value'
END AS new_column_name,
another_column
FROM
table_name
UNION ALL
(
SELECT
CASE
WHEN condition_1 THEN 'value_1'
WHEN condition_2 THEN 'value_2'
ELSE 'default_value'
END AS new_column_name,
another_column
FROM
table_name
WHERE some_additional_condition
)
```
在这个示例中,`condition_1`, `condition_2`是针对`another_column`的判断条件,`new_column_name`是你希望创建的新列名,`table_name`是你的表名,`some_additional_condition`是在第二个UNION ALL子查询中额外添加的条件。
这个查询的结果会包含满足任一条件后的行,每个条件对应一个新的列。如果你有多个可能的取值,你需要列出所有可能的情况。
阅读全文