- 论坛徽章:
- 0
|
原帖由 Germin 于 2009-5-17 19:26 发表 ![]()
WITH
T1(A,B,NUM) AS
( SELECT A,B,ROW_NUMBER() OVER(PARTITION BY A ORDER BY ID)
FROM T ),
T2(RA,RB,NUM) AS
( SELECT A,CHAR(B,10),NUM FROM T1 WHERE NUM = 1
UNION ALL
SELECT T2.RA,RT ...
真厉害,我从没敢想象用recursion。
传统的是用XML,用下面的例子稍稍改改就可以了。
http://it.toolbox.com/blogs/db2luw/pivot-query-12757
结果:
Id Phone numbers
1001 9495000,9834500,39238200
SELECT EMP_ID,
SUBSTR(Phone_nums, 1, LENGTH(Phone_nums) -1)
FROM
(SELECT Emp_id,
REPLACE
(REPLACE
(XMLSERIALIZE
(CONTENT XMLAGG(XMLELEMENT(Name "A", phone))
AS VARCHAR(90)),
'< A>', ''),
'</A>', ',') AS Phone_nums
FROM Emp_Phones
GROUP BY EMP_ID) AS X; |
|