zoukankan      html  css  js  c++  java
  • Oracle中使用REGEXP_SUBSTR,regexp_replace,wm_concat函数

    REGEXP_SUBSTR函数格式如下:
    function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
    __srcstr     :需要进行正则处理的字符串
    __pattern    :进行匹配的正则表达式
    __position   :起始位置,从第几个字符开始正则表达式匹配(默认为1)
    __occurrence :标识第几个匹配组,默认为1
    __modifier   :模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
    实际应用如下:在oracle中,使用一条语句实现将'123,456,789'拆分成'123','456','789'的集合。
    1.select REGEXP_SUBSTR('123,456,789', '[^,]+', 1, 1) value from dual;
    结果是:123

    2.select REGEXP_SUBSTR('123,456,789', '[^,]+', 1, 3) value from dual;

    结果是:789

    获取一个多个数值的列,从而能够让结果以多行的形式展示出来  

    1. select level from dual connect by level < 5;

    结果是:

    --1

    --2

    --3

    --4

    将上面REGEXP_SUBSTR和connect by level 关联 使用

    select TRIM(REGEXP_SUBSTR('123,456,789', '[^,]+', 1, level)) value from dual connect by level <= 3;

    结果是:

    --123

    --456

    --789

    优化上面的SQL语句,让生成的行的数量符合实际情况 

    select REGEXP_SUBSTR('123,456,789', '[^,]+', 1, level) value
    from dual
    connect by level <= length(regexp_replace('123,456,789', '[^,]*')) + 1;

    结果是:

    --123

    --456

    --789

    regexp_replace函数:

    1. select regexp_replace('123,456,789', '[^,]+','q') from dual;

    结果:

    --q,q,q

    2. select regexp_replace('123,456,789', '[^,]+') from dual;

    结果:

    ,,

    wm_concat函数

    该函数可以把列值以","号分隔起来,并显示成一行

    效果:

    select t.id_cssp_user from cssp_user_info t where rownum < 5;

    select to_char(wm_concat(t.id_cssp_user))
    from cssp_user_info t
    where rownum < 5;

    select t.mobile, to_char(wmsys.wm_concat(t.user_name))
    from cssp_user_info t
    where rownum<100
    group by t.mobile
    having count(0) > 1;

    
    
  • 相关阅读:
    python中多进程+协程的使用以及为什么要用它
    python爬虫——多线程+协程(threading+gevent)
    Python几种并发实现方案的性能比较
    Python threadpool传递参数
    python线程池(threadpool)模块使用笔记
    python下的select模块使用 以及epoll与select、poll的区别
    python中的select模块
    Python中threading的join和setDaemon的区别及用法
    python队列Queue
    和为S的连续正数序列
  • 原文地址:https://www.cnblogs.com/gexiaoshan/p/5683846.html
Copyright © 2011-2022 走看看