※ 引述《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