Code <!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->SELECT n_sec_code, TRANSLATE (LTRIM (text, '/'), '*/', '*,') researcherList FROM (SELECT ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code, lvl DESC) rn, n_sec_code, text FROM (SELECT n_sec_code, LEVEL lvl, SYS_CONNECT_BY_PATH (c_researcher_code,'/') text FROM (SELECT n_sec_code, c_researcher_code as c_researcher_code, ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,c_researcher_code) x FROM m_researcher_stock_rel ORDER BY n_sec_code, c_researcher_code) a CONNECT BY n_sec_code = PRIOR n_sec_code AND x - 1 = PRIOR x)) WHERE rn = 1 ORDER BY n_sec_code; 预想的结果成功出现,多行数据成功汇总到一行,特此分享与大家。对于你自己的应用中,只需要把SQL中“n_sec_code” 换为你的用来汇总的列,“c_researcher_code”替换为需合并文本的列,“m_researcher_stock_rel”替换为你的表名,就是这么简单。
感谢网友@OctoberOne、@ericqliu的指点,在ORACLE10中可使用以下方法: SELECT n_sec_code, wmsys.wm_concat (c_researcher_code) as result FROM m_researcher_stock_rel GROUP BY n_sec_code 来自:http://www.cnblogs.com/heekui/archive/2009/07/30/1535516.html