zoukankan      html  css  js  c++  java
  • Oracle使用正则表达式拆分字段里多行分布式值

    不规范的表设计往往会带来程序设计上的麻烦,也会降低SQL的性能。

    例如下表显示的内容:

    这样我们调取多值字段用来做匹配的话就比较麻烦,我们可以通过正则表达式REGEXP_SUBSTR先将

    多值得列分成多行,例如上面所示,我们拆分后变成三行

    SELECT DISTINCT KUNNR, 
      MATNR,
      ROW_ID,
      ZFLAG,
      ZVPFLAG,
      REGEXP_SUBSTR(ZBMATNR, '[^,]+', 1, LEVEL) ZBMATNR,
      REGEXP_SUBSTR(ZBCYL, '[^,]+', 1, LEVEL) ZBCYL
      FROM SAP_QM_CUSTOMER_FAKE  WHERE ZVPFLAG='1'
      CONNECT BY LEVEL <= REGEXP_COUNT(ZBMATNR, '\,') + 1

    拆分成多行后,我们可以通过建立临时表,将这些数据放到临时表来使用,不会产生其他影响

  • 相关阅读:
    对象拷贝-深拷贝
    eclipse安装桌面快捷方式
    ajax 分页
    单例模式
    过滤器
    ajax参数详解
    json
    反射
    jdbc02
    jdbc --例子7
  • 原文地址:https://www.cnblogs.com/guipeng/p/6531920.html
Copyright © 2011-2022 走看看