mysql unpivot示例
时间: 2023-08-26 10:16:36 浏览: 141
在MySQL中,没有内置的UNPIVOT函数,但可以使用其他技术来实现相同的效果。下面是一个示例,展示了如何使用联结和条件语句来执行unpivot操作:
假设我们有以下表格:
```
+----+------+------+------+
| id | col1 | col2 | col3 |
+----+------+------+------+
| 1 | 10 | 20 | 30 |
| 2 | 40 | 50 | 60 |
| 3 | 70 | 80 | 90 |
+----+------+------+------+
```
现在我们想要将这些列转换为行,可以使用以下查询来实现unpivot操作:
```
SELECT id, 'col1' AS column_name, col1 AS value
FROM your_table
UNION ALL
SELECT id, 'col2' AS column_name, col2 AS value
FROM your_table
UNION ALL
SELECT id, 'col3' AS column_name, col3 AS value
FROM your_table;
```
这将产生以下结果:
```
+----+-------------+-------+
| id | column_name | value |
+----+-------------+-------+
| 1 | col1 | 10 |
| 1 | col2 | 20 |
| 1 | col3 | 30 |
| 2 | col1 | 40 |
| 2 | col2 | 50 |
| 2 | col3 | 60 |
| 3 | col1 | 70 |
| 3 | col2 | 80 |
| 3 | col3 | 90 |
+----+-------------+-------+
```
通过使用UNION ALL将多个查询结果合并,可以将列转换为行,并将每个列的名称作为新的column_name列,将原始值作为value列。这样就实现了unpivot操作的效果。
阅读全文