mysql 多列变一行 查询语句
时间: 2024-10-09 21:15:41 浏览: 38
从一个MySQL的例子来学习查询语句
在MySQL中,如果你想要将多列的数据合并成一行显示,可以使用`GROUP_CONCAT()`函数或者`UNION ALL`结合`CASE`语句来实现。这里有两个常用的方法:
1. **GROUP_CONCAT()函数**:
```sql
SELECT column1, column2, GROUP_CONCAT(column3 SEPARATOR ', ') AS combined_column
FROM table_name
GROUP BY common_key;
```
这里,`column1`和`column2`是你想保留的主键列,`column3`是要合并的列,`SEPARATOR`指定了分隔符,默认是逗号。
2. **UNION ALL + CASE语句**:
```sql
SELECT column1, column2, column3
FROM (
SELECT column1, column2, column3
FROM table_name
) t1
UNION ALL
SELECT column1, column2, CONCAT('(', column3, ')')
FROM (
SELECT column1, column2, column3
FROM table_name
) t2
WHERE column3 IS NOT NULL;
```
对于NULL值,你可以选择忽略或者用特定的方式处理,例如上述示例中用小括号包裹起来。
阅读全文