oracle 数据库 LISTAGG详解

目录

简介:

效果展示:

举例:

测试表及数据:


简介:

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

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

效果展示:

oracle 数据库 LISTAGG详解_第1张图片 

举例:

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

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

oracle 数据库 LISTAGG详解_第2张图片

2、查询张三名下手机号 

oracle 数据库 LISTAGG详解_第3张图片

3、 查询李四名下手机号

oracle 数据库 LISTAGG详解_第4张图片

测试表及数据:

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 ;

你可能感兴趣的:(数据库)