DB2 合并字段方法

本文介绍了如何在DB2数据库中将具有相同ID的记录的某个字段值合并成一个字符串,提供了三种方法:CTE递归、使用内置函数STUFF和游标处理。详细步骤和SQL示例代码展示了如何实现这一操作。
摘要由CSDN通过智能技术生成

今天一位以前的同事问起这个问题,以前貌似见过但是忘记了,随即上网查查了

参照了这个http://topic.csdn.net/u/20090926/22/43301a7a-00eb-4072-b0c1-c4158ed5a868.html

http://topic.csdn.net/u/20090925/09/4218b452-9696-4c5c-a687-e0f42196af3b.html

原始数据结构如下:
<!--StartFragment -->

------------------------------------------
文章名 作者  创建时间  附件名称
春天    程晓锋  2010-9-9  a.doc
春天    程晓锋  2010-9-9  b.doc
春天    程晓锋  2010-9-9  我的.ppt
---------------------------------------------

希望能有一套高效的方法,将其迅速整理成如下格式:
表2
-----------------------------------------------------------
文章名 作者  创建时间  附件名称
春天    程晓锋  2010-9-9  a.doc, b.doc, 我的.ppt
----------------------------------------------------------

CREATE TABLE T_BASE(ID INT,NAME VARCHAR(10),AGE INT);

INSET
INTO T_BASE VALUES
(
1,'ZHANG',30),
(
2,'YANG',28),
(
3,'LI',33);
CREATE TABLE T_DETAIL(ID INT,INFO VARCHAR(10));
INSERT INTO T_DETAIL VALUES
(
1,'ZHANG1'),
(
1,'ZHANG2'),
(
1,'ZHANG3'),
(
2,'YANG1'),
(
2,'YANG2'),
(
3,'LI1');

WITH B (FATHER,SON,ID,ALLINFO) AS
    (
SELECT  RTRIM(LTRIM(CHAR(A.ID)))|| CHAR(ROW_NUMBER() OVER(PARTITION BY ID)) AS FATHER,
           
RTRIM(LTRIM(CHAR(A.ID)))|| CHAR(ROW_NUMBER() OVER(PARTITION BY ID) + 1) AS SON,
            A.ID,
CAST(A.INFO AS VARCHAR(100))
   
FROM T_DETAIL A
   
UNION ALL
   
SELECT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值