mysql中如何把一维表转换为二维表
时间: 2024-03-09 17:48:51 浏览: 101
在 MySQL 中,可以使用 `GROUP BY` 和聚合函数来将一维表转换为二维表。假设有如下一维表 `table1`:
```
+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
| A | X | 1 |
| A | Y | 2 |
| B | X | 3 |
| B | Y | 4 |
+------+------+------+
```
如果想要将 `col1` 和 `col2` 作为二维表的行和列,同时将 `col3` 的值填充到对应的单元格中,可以使用以下 SQL 语句:
```
SELECT col1,
MAX(CASE WHEN col2 = 'X' THEN col3 ELSE NULL END) AS 'X',
MAX(CASE WHEN col2 = 'Y' THEN col3 ELSE NULL END) AS 'Y'
FROM table1
GROUP BY col1;
```
执行上述 SQL 语句后,会得到如下二维表:
```
+------+------+------+
| col1 | X | Y |
+------+------+------+
| A | 1 | 2 |
| B | 3 | 4 |
+------+------+------+
```
其中,`MAX(CASE WHEN col2 = 'X' THEN col3 ELSE NULL END)` 和 `MAX(CASE WHEN col2 = 'Y' THEN col3 ELSE NULL END)` 分别表示将 `col2` 的值作为列名,根据条件将 `col3` 的值填充到对应的单元格中。
阅读全文