目录
简介:
效果展示:
举例:
测试表及数据:
简介:
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 ;