zoukankan      html  css  js  c++  java
  • 正则表达式使用一例

    如何用正则表达式实现这样的需求

    通过wm_concat()函数得到了这样的结果:
    '014,014,018,022,317,319,023,021'
    如何继续排序和去重复呢?
    期望结果:'014,018,021,022,023,317,319'
    测试数据:
    select '014,014,018,022,317,319,023,021' from dual;
    wm_concat集合函数在plsql中不能加distinct关键字,在sql中执行没事。
    有三种方式屏蔽:
    1、改为sql串,动态执行;
    2、定义视图;
    3、先 distinct ,套一层在wm_concat。
    由于原sql比较复杂,不想改写,打算通过下面两个思路解决:
    1、写个去重复排序函数解决这个问题。
    2、想用正则表达式实现。
    对于正则表达式,大家有没有好的思路?

    ------------------------------------------Answer--------------------------------------------------------

    with a as (
      select '014,014,018,022,317,319,023,021,026,023' line from dual
    ) ,
    b as (
      select distinct regexp_substr(a.line,'[^,]+',1,level) token
      from a
      connect by level<=
        (select length(rtrim(a.line,','))-length( replace(a.line,',','') ) +1 from a )
    )
    select wmsys.wm_concat(token) distinct_line
    from b

  • 相关阅读:
    noip模拟70
    noip模拟测试62
    noip模拟66
    noip模拟67
    noip模拟64
    QATF自动化测试框架
    自动化领域谁主沉浮
    TestComplete9.2增强支持 Embarcadero RAD Studio XE3、Ext JS
    QTP对SAP的支持
    如何将makefile构建的工程导入C++test?
  • 原文地址:https://www.cnblogs.com/tracy/p/2082308.html
Copyright © 2011-2022 走看看