zoukankan      html  css  js  c++  java
  • Oracle字符串截取

    关于Oracle里面的一些小函数
    要求:A.数据库表中的一个字符串 可能含有"
    +" 例:ORC+001
    也可能不含“
    +
    B.要求如果该字符串含有“
    +”,则取“+”之前的字符 例:ORC+001 取ORC
    C.如果该字符串不含"
    +",则直接取该字符串。
    解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。

    Oracle中函数
    INSTR:INSTR方法的格式为
    INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
    默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
    例:
    Select INSTR('ORC+001','+',1,1) From dual
      返回的是"
    " 如果该字符串没有匹配字符 返回的是“”。

    SUBSTR:取子字符串 取子字符串
    SUBSTR(源字符串,起始位置,要取多少位)
    从“起始位置”开始,取“多少"个
    例 
    Select SUBSTR('ORC+001',1,3) From dual;
      返回的是“ORC”
      
    全例如下:
    表T_RCV_ISSUE
    WH_CD字段
    取 WH_CD 如果该字段包含"
    +",取“+”之前的字符
    如果该字段没有"
    +",取整个字段

    T_RCV_ISSUE表
    WH_CD 分别为 MR
    -PS+007,MR-WS,MR-WS+001,MR-PS

    执行
    SELECT CASE
    WHEN INSTR(WH_CD, '+', 1, 1) > 0
    THEN SUBSTR(WH_CD, 1, INSTR(WH_CD, '+', 1, 1) - 1)
    ELSE WH_CD
    END AS WH_CD
    FROM T_RCV_ISSUE

    结果:MR
    -PS,MR-WS,MR-WS,MR-PS
  • 相关阅读:
    表的锁机制
    ABAP函数:VIEW_MAINTENANCE_CALL(维护表视图等)
    数据字典中新建表时出现黄色警告的处理
    smartforms长文本处理方式
    打印报表页码
    可以根据柜子内表取出所有的柜子信息的BAPI函数
    方法的重载、类的继承
    构造方法
    函数方法
    方法
  • 原文地址:https://www.cnblogs.com/pipizhu/p/1728772.html
Copyright © 2011-2022 走看看