oracle的 listagg() WITHIN GROUP () 函数使用
时间: 2024-04-24 07:23:08 浏览: 140
【Oracle】LISTAGG函数的使用.pdf
Oracle的`LISTAGG()`函数用于将多行数据连接成一个字符串,并可以指定连接时的分隔符。`LISTAGG()`函数的语法如下:
```
LISTAGG(column_name, [delimiter]) WITHIN GROUP (ORDER BY column_name)
```
其中,`column_name`是要连接的列名,可以是任何数据类型。`delimiter`是可选参数,用于指定连接时的分隔符,默认为空字符串。`WITHIN GROUP (ORDER BY column_name)`用于指定连接时的排序方式,可以按照列名进行排序。
下面是一个具体的例子,假设有一个表`employees`,包含以下数据:
```
ID NAME
---------------
1 Alice
2 Bob
3 Charlie
```
我们想要将`NAME`列连接成一个以逗号分隔的字符串,可以使用如下SQL语句:
```
SELECT LISTAGG(NAME, ', ') WITHIN GROUP (ORDER BY ID) AS NAMES
FROM employees;
```
执行以上查询后,将会得到以下结果:
```
NAMES
-----------------
Alice, Bob, Charlie
```
这样就将`NAME`列中的数据连接成了一个以逗号分隔的字符串,并按照`ID`列的顺序进行了排序。
阅读全文