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
  • 相关阅读:
    5月29 流程
    5月27 权限设置及功能
    5月26 留言板练习题
    5月24 文件操作
    5月23 文件上传及图片上传预览
    5月23 注册审核
    5月21 回话控制SESSION COOKIE
    5月21 汽车查询及批量删除----php方法
    5月21 练习AJAX的查看详细及批量删除
    5月20 三级联动
  • 原文地址:https://www.cnblogs.com/pipizhu/p/1728772.html
Copyright © 2011-2022 走看看