分割字串問題

zhouwf0726發表於2019-03-26
分割字串問題!

問題源自http://www.itpub.net/626418.html

/*

怎樣支掉字串中逗號間重複的字元
如 ',1,2,5,9,1,2,5,9,1,2,9,1,2,9,1,2,3,9,1,2,3,9,1,2,9,1,2,9,1,2,3,9,1,2,3,9,'怎樣支掉字串中逗號間重複的字元,並將字元升序排列,得到
',1,2,3,5,9,'
百思不得其解,是高手的試一下。

解答:
select col from(
select sys_connect_by_path(col,',')||',' col,level from(
select col,row_number() over(order by rownum) rn from (
select distinct substr(col,instr(col,',',1,rownum)+1,instr(col,',',1,rownum+1)-instr(col,',',1,rownum)-1) col from (
select ',1,2,5,9,1,2,5,9,1,3,9,' col from dual
) connect by rownum)
)
connect by prior rn = rn -1 order by level desc
) where rownum=1

*/

這個問題的解決辦法中的一部分(按照固定分隔符分割字串)可以解決http://www.itpub.net/515354.html

/*

要求用pl/sql寫一個函式, 實現根據分割符把原字串分成若干個字串功能.

輸入: string(字串) 和 Delimiter (分隔符)
輸出: substr1, ..., substrn (根據分割後的字串排序, 不是子串在原字串中的順序)

解答:

select substr(col,instr(col,',',1,rownum)+1,instr(col,',',1,rownum+1)-instr(col,',',1,rownum)-1) col from (
select ',1,2,5,9,1,2,5,9,1,3,9,' col from dual
) connect by rownum
*/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-242167/,如需轉載,請註明出處,否則將追究法律責任。

相關文章