mysql 几万数据行列互换_mysql行列数据转换
时间: 2023-07-25 08:09:21 浏览: 113
mysql行列转换
5星 · 资源好评率100%
可以使用 MySQL 的 CASE 语句实现行列数据的转换。假设有一个表格,包含 id、name、gender 三个字段,需要将其转换为新的表格,包含 id 和 attribute 两个字段,其中 attribute 有三种取值,分别为 name、gender 和 value,对应原表格中的 name、gender 和其对应的值。可以使用以下 SQL 语句实现:
```
SELECT id, 'name' AS attribute, CASE WHEN name IS NOT NULL THEN name ELSE '' END AS value
FROM original_table
UNION ALL
SELECT id, 'gender' AS attribute, CASE WHEN gender IS NOT NULL THEN gender ELSE '' END AS value
FROM original_table
UNION ALL
SELECT id, 'value' AS attribute, ''
FROM original_table;
```
这里使用了 UNION ALL 操作符将三个 SELECT 语句的结果组合起来。第一个 SELECT 语句将 name 字段转换为 attribute 为 name 的记录,第二个 SELECT 语句将 gender 字段转换为 attribute 为 gender 的记录,第三个 SELECT 语句将 attribute 设为 value,但是不需要填写具体的值。在 CASE 语句中,判断字段是否为 NULL,如果是,则将其转换为空字符串。最后得到的结果与要求的新表格相同。
阅读全文