oracle 数据库 LISTAGG详解

本文介绍了如何使用Oracle数据库的LISTAGG函数将一个人的多个手机号码结构清晰地展示出来,通过示例展示了查询张三和李四名下的手机号并使用GROUPBY进行分组的操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

简介:

效果展示:

举例:

测试表及数据:


简介:

        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 ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值