zoukankan      html  css  js  c++  java
  • 拆分字符串

    本函数可以将“目标字符串”以“指定字符串”进行拆分,并通过表结构返回结果。代码如下:

    CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000);
    CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
        RETURN str_split 
        PIPELINED
    AS
        v_length   NUMBER := LENGTH(p_string);
        v_start    NUMBER := 1;
        v_index    NUMBER;
    BEGIN
        WHILE(v_start <= v_length)
        LOOP
            v_index := INSTR(p_string, p_delimiter, v_start);
    
            IF v_index = 0
            THEN
                PIPE ROW(SUBSTR(p_string, v_start));
                v_start := v_length + 1;
            ELSE
                PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
                v_start := v_index + 1;
            END IF;
        END LOOP;
    
        RETURN;
    END splitstr;

    创建完毕后,我们来测试一下,例如执行如下SQL:

    select * from table(splitstr('Hello,Cnblogs!',','));

    其输出结果为一个两行的表,如下图:

    2009-9-9-11.38.15

    将行转为列显示:

    select a.column_value v1,b.column_value v2 from 
    (select * from (select rownum rn,t.* from table(splitstr('Hello,Cnblogs!',',')) t)) a,
    (select * from (select rownum rn,t.* from table(splitstr('Hello,Cnblogs!',',')) t)) b
    where a.rn=1 and b.rn=2

    如图:

    2009-9-9-11.44.53

    转载:作者:李敬然(Gnie)
    出处:{GnieTech} (http://www.cnblogs.com/gnielee/)
    天善智能 成立于2011年11月,由3位从事BI商业智能开发多年的草根码农组成 ,致力于推动BI技术在中国的发展,帮助更多的朋友掌握BI技术!官方博客:http://blog.tianshansoft.com
  • 相关阅读:
    Linux分区
    Vim 基本配置
    Ubuntu几种常见乱码解决方法
    ADB
    ubuntu下安装配置ADB
    Tinyos学习笔记(三)
    Tinyos学习笔记(二)
    Codeforces Round #249 (Div. 2) A题
    poj 2007 Scrambled Polygon(极角排序)
    MemSQL Start[c]UP 2.0
  • 原文地址:https://www.cnblogs.com/tianshansoft/p/2355434.html
Copyright © 2011-2022 走看看