欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

深入理解Oracle数据库的LISTAGG函数

最编程 2024-08-08 12:45:59
...

目录

简介:

效果展示:

举例:

测试表及数据:


简介:

        Oracle数据库的LISTAGG函数用于将多行数据合并为单个字符串,常见于分组操作,实现数据的垂直到水平的转换。

        解决问题如:一个人有多个手机号,如何结构清晰的展示

效果展示:

 

举例:

        一个人有多个手机号,如何结构清晰的展示

1、查询数据库数据存储方式

2、查询张三名下手机号 

3、 查询李四名下手机号

测试表及数据:

CREATE TABLE TEST_TEMP (	
	"NAME" VARCHAR2(50), 
	"PHONE" VARCHAR2(20)
)
   
INSERT INTO TEST_TEMP (NAME,PHONE) VALUES
 ('张三','13888888881'),
 ('张三','13888888882'),
 ('张三','13888888883'),
 ('李四','13888888884'),
 ('李四','13888888885');

-- 查询所有数据
select * from TEST_TEMP ;

-- 查询张三名下手机号
select t.NAME ,LISTAGG(t.PHONE ,',') WITHIN GROUP (ORDER BY t.NAME)  
from TEST_TEMP t WHERE t.NAME ='张三' GROUP BY t.NAME ;

-- 查询李四名下手机号
select t.NAME ,LISTAGG(t.PHONE ,',') WITHIN GROUP (ORDER BY t.NAME)  
from TEST_TEMP t WHERE t.NAME ='李四' GROUP BY t.NAME ;