oracle多条数据拼接在同一行
时间: 2023-08-11 07:10:59 浏览: 127
表中数据多行转1行多列
你可以使用 Oracle SQL 中的 LISTAGG 函数将多条数据拼接在同一行中。该函数将一个列的值列表拼接为一个字符串,可以指定分隔符。
例如,假设你有一个名为 employees 的表,包含员工名字和部门信息:
| Name | Department |
|----------|------------|
| John Doe | Sales |
| Jane Doe | Marketing |
| Bob Smith| Sales |
你想要将每个部门的员工名字拼接在同一行中,以逗号分隔。可以使用以下 SQL 语句:
```sql
SELECT Department, LISTAGG(Name, ', ') WITHIN GROUP (ORDER BY Name) AS Employees
FROM employees
GROUP BY Department;
```
执行以上 SQL 后,将得到以下结果:
| Department | Employees |
|------------|------------------------|
| Sales | Bob Smith, John Doe |
| Marketing | Jane Doe |
在以上示例中,LISTAGG 函数使用 WITHIN GROUP 子句指定了排序顺序,并将每个员工名字用逗号和空格分隔。GROUP BY 子句按照部门名称对结果进行分组。
阅读全文