mysql 行转列怎么实现
时间: 2024-06-17 22:07:05 浏览: 10
MYSQL 行转列是指将表格中的一行数据转化为多列数据的过程,可以通过使用MySQL的PIVOT函数来实现。具体步骤如下:
1. 使用SELECT语句查询表格中的数据,并使用GROUP BY语句将数据按照需要转化的列进行分组。
2. 使用PIVOT函数,将分组后的数据行转换为列,并指定需要转换的列以及对应的列名。
3. 使用COALESCE函数,将NULL值替换为指定的值(例如0)。
下面是一个示例代码:
```
SELECT
`name`,
COALESCE(`age`, 0) AS `age`,
COALESCE(`gender`, 'unknown') AS `gender`,
COALESCE(`address`, 'unknown') AS `address`
FROM (
SELECT
`name`,
CASE WHEN `property` = 'age' THEN `value` ELSE NULL END AS `age`,
CASE WHEN `property` = 'gender' THEN `value` ELSE NULL END AS `gender`,
CASE WHEN `property` = 'address' THEN `value` ELSE NULL END AS `address`
FROM `table_name`
WHERE `name` = 'xxx'
) AS t
GROUP BY `name`;
```
上述代码中,假设`table_name`表格中有`name`,`property`,`value`三个字段,其中`property`表示需要转化的列名,`value`表示需要转化的值。该代码中将以`name`字段为基准进行分组,并将每个分组结果中的`age`,`gender`,`address`三个属性转化为对应的列,其中若属性值为NULL,则使用COALESCE函数将其替换为指定值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)