oracle listagg用法
时间: 2024-09-30 13:00:25 浏览: 42
Oracle函数之LISTAGG
Oracle的LISTAGG函数是一个非常有用的聚合函数,它允许您将一组非NULL值连接成字符串列表,类似于SQL Server的STRING_AGG或MySQL的GROUP_CONCAT。LISTAGG函数的基本语法如下:
```sql
LISTAGG(column [separator], [result_prefix])
OVER (PARTITION BY [partition_column] ORDER BY [order_by_column] [ASC|DESC])
```
- `column`:需要连接的列名。
- `separator`:可选参数,指定元素间的分隔符,默认为空格。
- `result_prefix`:可选参数,如果设置,将在整个结果前添加的文本。
- `PARTITION BY`:按照这个列对结果进行分组。
- `ORDER BY`:可选,按此列对结果进行排序。
- `ASC` 或 `DESC`:排序的方向,默认为ASC(升序)。
例如,如果你有一个名为orders的表,想按订单号列出所有的产品名称,可以这样做:
```sql
SELECT LISTAGG(product_name, ', ') WITHIN GROUP (ORDER BY product_id)
FROM orders;
```
这将返回一个逗号分隔的产品名称列表。
阅读全文