zoukankan      html  css  js  c++  java
  • oracle 的 regexp_substr()的用法

    将字符串'1-2' 截取出来成1 、2,然后通过这两个值查出数据张三、李四  ,拼接起来成'张三-李四'

    oracle 语法

    SELECT replace(WMSYS.WM_CONCAT(wrxm), ',', '-') FROM 
           (SELECT regexp_substr('3071-9036-8719', '[^-]+', 1,rownum) col1 
            FROM dual CONNECT BY ROWNUM <= LENGTH ('3071-9036-8719') - LENGTH 
            (REPLACE ('3071-9036-8719', '-', ''))+1) t1 left join wrxxb t2 on t1.col1=t2.id
    
    --执行结果--
    
    REPLACE(WMSYS.WM_CONCAT(WRXM),',','-')
    
    叶宝仙-李成梁-黎又明

    wmsys.wm_concat():

    Oracle中的wmsys.wm_concat主要实现行转列功能(说白了就是将查询的某一列值使用逗号进行隔开拼接,成为一条数据)

    若使用了WMSYS.WM_CONCAT函数,应尽量不要对查询结果进行distinct,union,和group by操作,避免oracle版本的差异化

    regexp_substr():

    格式

    REGEXP_SUBSTR (source_string, pattern
                  [, position
                     [, occurrence
                        [, return_option
                           [, match_parameter ]
                        ]
                     ]
                  ]
                ) 

    参数说明:

    source_string:输入的字符串
    pattern:正则表达式
    position:标识从第几个字符开始正则表达式匹配。(默认为1)
    occurrence:标识第几个匹配组。(默认为1)
    return_option:0——返回第一个字符出现的位置。1:pattern下一个字符起始位置。
    match_parameter:取值范围
            i:大小写不敏感;
            c:大小写敏感;
            n:点号 . 不匹配换行符号;
            m:多行模式;

            x:扩展模式,忽略正则表达式中的空白字符。 

    扩展:

    ORACLE中的支持正则表达式的函数主要有下面四个:
    1,REGEXP_LIKE :与LIKE的功能相似
    2,REGEXP_INSTR :与INSTR的功能相似
    3,REGEXP_SUBSTR :与SUBSTR的功能相似
    4,REGEXP_REPLACE :与REPLACE的功能相似
    它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同。
  • 相关阅读:
    Solr的中英文分词实现
    乐观锁与悲观锁
    Keepalived + nginx实现高可用性和负载均衡
    Heartbeat实现集群高可用热备
    mongoDB 使用手册
    LVS+keepalived负载均衡
    keepalived工作原理和配置说明
    微信设置URL之WebApi方式
    RabbitMQ Windows下安装问题解决
    JSOM 中对各种字段操作
  • 原文地址:https://www.cnblogs.com/siyunianhua/p/4688412.html
Copyright © 2011-2022 走看看