作者diamondking (天剑流星)
看板Database
标题Re: 也是将多笔资料合并在同一栏位的问题
时间Thu Sep 6 02:06:42 2007
※ 引述《wjykino (none)》之铭言:
: 请教各位
: 假如我有一SQL如下所示
: select name,subject from student_record
: 假设get的资料为
: name subject
: 小明 国文
: 小明 数学
: 请问我该怎麽修改SQL才能get如下的资料
: name subject
: 小明 国文,数学
: 我爬文发现774篇似乎符合我的需求
: 但是我使用的是Oracle 在oracle中似乎没有group_concat这样的函数
: 请问有其他函数还是该怎麽改才可以达到我的需求呢
: 谢谢
以前曾经查过一行sql的解法,改写成你要的如下,请参考:
SELECT name,max(substr(subject,2)) subject
FROM
(SELECT name,sys_connect_by_path(subject,',') subject
FROM
(SELECT name,subject,name || rn rchild,name || (rn-1) rfather
FROM
(SELECT name ,subject,row_number() over
(PARTITION BY name ORDER BY subject) rn
FROM student_record))
CONNECT BY PRIOR rchild=rfather
START WITH rfather LIKE '%0')
GROUP BY name
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.117.63.84