oracle同个字段多条记录合并,Oracle数据库根据某字段将多条数据合并为一条数据...

这篇博客介绍了如何使用SQL语句将`user_account`表中属于同一个用户的所有账户名称合并显示在一行记录中。通过`listagg`函数按`name`字段分组并按`account_name`排序,实现了数据的聚合。示例展示了创建表、插入数据以及执行查询的完整过程。
摘要由CSDN通过智能技术生成

场景

将账户表中同一个用户的账户号合并显示在一条记录中select name, listagg(account_name, ',') within group(order by name) from user_account group by name;

建表sql语句create table user_account(

id number(12,0) primary key,

name varchar(50),

account_name varchar(50),

balance number(10,2)

);

insert into user_account values(1, 'wangwu', 'wangwuAccount1', 600);

insert into user_account values(2, 'wangwu', 'wangwuAccount2', 400);

insert into user_account values(3, 'lisi', 'lisiAccount1', 200);

insert into user_account values(4, 'lisi', 'lisiAccount2', 1000);

insert into user_account values(5, 'zhangsan', 'zhangsanAccount1', 500);

insert into user_account values(6, 'zhangsan', 'zhangsanAccount2', 500);

insert into user_account values(7, 'zhangsan', 'zhangsanAccount3', 500);

查询sql语句

一般查询:select * from user_account order by id

结果:

87afad29b3f08c3ff7449ec9d8af238b.png

将account_name字段根据name字段进行合并select name, listagg(account_name, ',') within group(order by name) from user_account group by name;

结果:

36a38f83dede57d37945184a3cd2f25f.png

---------------------

参考链接:https://blog.csdn.net/qq_36743920/article/details/80291166

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值