<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評(píng)論 :: 0 Trackbacks
    分割字符串問(wèn)題
    ===========================================================
    作者: zhouwf0726(http://zhouwf0726.itpub.net/)
    發(fā)表于:2006.09.06 12:58
    分類: oracle開(kāi)發(fā)
    出處:http://zhouwf0726.itpub.net/post/9689/203877
    ---------------------------------------------------------------
    ?
    問(wèn)題源自http://www.itpub.net/626418.html
    ?
    ?
    ?
    怎樣支掉字符串中逗號(hào)間重復(fù)的字符
    如 ',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,'怎樣支掉字符串中逗號(hào)間重復(fù)的字符,并將字符升序排列,得到
    ',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<length(translate(col,','||col,','))
    )
    )
    connect by prior rn = rn -1 order by level desc
    ) where rownum=1
    ?
    ?
    ?
    這個(gè)問(wèn)題的解決辦法中的一部分(按照固定分隔符分割字符串)可以解決http://www.itpub.net/515354.html
    ?
    ?
    要求用pl/sql寫(xiě)一個(gè)函數(shù), 實(shí)現(xiàn)根據(jù)分割符把原字符串分成若干個(gè)字符串功能.
    輸入: string(字符串) 和 Delimiter (分隔符)
    輸出: substr1, ..., substrn (根據(jù)分割后的字符串排序, 不是子串在原字符串中的順序)
    ?
    解答:
    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<length(translate(col,','||col,','))
    ?
    ?
    ?
    ?
    ?
    ?
    分割串問(wèn)題
    ===========================================================
    作者: zhouwf0726(http://zhouwf0726.itpub.net/)
    發(fā)表于:2007.03.08 17:31
    分類: oracle開(kāi)發(fā)
    出處:http://zhouwf0726.itpub.net/post/9689/269709
    ---------------------------------------------------------------
    ?
    一個(gè)網(wǎng)友的問(wèn)題解決記錄http://www.itpub.net/showthread.php?s=&threadid=723791
    ?
    我現(xiàn)在表有個(gè)字段是ids并且以@@分割,例如@@123@@234@@567@@.
    ?
    現(xiàn)在有一個(gè)select id from project查出來(lái)的結(jié)果集(如查出來(lái)id是123,234,555)現(xiàn)在我想用like匹配這個(gè)結(jié)果集,只要@@123@@234@@567@@.有一個(gè)id匹配出來(lái)出的結(jié)果集就OK
    ?
    SQL> select * from tt;
    ?
    ID
    ------------------------------------------------------------
    @@aa@@bb@@cc@@
    @@aaa@@bbb@@ccc@@
    ?
    SQL> create or replace type t_object as object(
    2 id varchar2(60),
    3 sub_id varchar2(60)
    4 );
    ?
    Type created
    ?
    SQL> create type t_ret_table is table of t_object;
    ?
    Type created
    ?
    SQL> create or replace function f_test(var_str in varchar2) return t_ret_table PIPELINED
    2 as
    3 var_tmp varchar2(60);
    4 var_element varchar2(60);
    5 begin
    6 for i in (select rtrim(ltrim(id,'@@'),'@@') id from tt) loop
    7 var_tmp := i.id;
    8 while instr(var_tmp,'@@')>0 loop
    9 var_element := substr(var_tmp,1,instr(i.id,'@@')-1);
    10 var_tmp := substr(var_tmp,instr(i.id,'@@')+2,length(var_tmp));
    11 pipe row(t_object(i.id,var_element));
    12 end loop;
    13 pipe row(t_object(i.id,var_tmp));
    14 end loop;
    15 return;
    16 end f_test;
    17 /
    ?
    Function created
    ?
    SQL> select id from table(f_test('a')) where sub_id in (select col from (select 'aa' col from dual union select 'bbb' col from dual union select 'ccc' from dual)) group by id;
    ?
    ID
    ------------------------------------------------------------
    aa@@bb@@cc
    aaa@@bbb@@ccc
    ?

    SQL>select * from table(f_test('a'));
    ?
    ID SUB_ID
    ------------------------------------------------------------ ------------------------------------------------------------
    aa@@bb@@cc aa
    aa@@bb@@cc bb
    aa@@bb@@cc cc
    aaa@@bbb@@ccc aaa
    aaa@@bbb@@ccc bbb
    aaa@@bbb@@ccc ccc
    ?
    6 rows selected.
    ?
    ?
    ?
    SQL>select id from table(f_test('a')) where sub_id in (
    select substr(col,instr(col,',',1,rownum)+1,instr(col,',',1,rownum+1)-instr(col,',',1,rownum)-1) col from (
    select ','||'aa,aaa,bbb'||',' col from dual
    ) connect by rownum<length(translate(col,','||col,','))
    )
    group by id




    -The End-

    posted on 2008-09-30 13:43 decode360-3 閱讀(364) 評(píng)論(0)  編輯  收藏 所屬分類: SQL Dev
    主站蜘蛛池模板: 久久精品国产亚洲一区二区| 久久久久久免费视频| 免费国产怡红院在线观看| 亚洲黄色三级视频| 花蝴蝶免费视频在线观看高清版| 国产成人青青热久免费精品| 亚洲精品自在线拍| 99爱在线观看免费完整版| 亚洲日韩中文字幕在线播放| 狠狠热精品免费观看| 国产免费观看网站| 亚洲国产综合AV在线观看| 成年美女黄网站18禁免费| 亚洲一级毛片免观看| 精品免费人成视频app| 亚洲午夜免费视频| 一区二区三区在线免费看| 亚洲精品无码精品mV在线观看| 免费无遮挡无码视频在线观看| 国产精品国产免费无码专区不卡| 亚洲熟伦熟女专区hd高清| 国产免费AV片在线播放唯爱网 | 亚洲情a成黄在线观看| 无人视频免费观看免费视频 | 亚洲精品久久久www| h在线看免费视频网站男男| 久久久久国产亚洲AV麻豆| 97在线视频免费公开视频| 国产成人精品日本亚洲网站| 精品成人免费自拍视频| 亚洲色图国产精品| 无码人妻精品中文字幕免费东京热| 亚洲视频在线免费播放| 香蕉97超级碰碰碰免费公| 精品丝袜国产自在线拍亚洲| 永久免费视频v片www| 国产精品免费视频观看拍拍| 亚洲AV无码一区二区乱孑伦AS| 91成人在线免费视频| 亚洲国产日韩综合久久精品| 国产精品四虎在线观看免费 |