zoukankan      html  css  js  c++  java
  • 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

      返回的是"4" 如果该字符串没有匹配字符 返回的是“0”。

      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 ......

  • 相关阅读:
    Quartz任务调度(3)存储与持久化操作配置详细解
    Quartz任务调度(2)CronTrigger定制个性化调度方案
    Quartz任务调度(1)概念例析快速
    Mybatis Generator最完整配置详解
    SpringMVC之@ControllerAdvice
    文件上传api——MultipartFile
    Springboot使用MatrixVariable 注解
    p命名空间和c命名空间
    SpringBoot配置Cors跨域请求
    SpringBoot五步配置Mybatis
  • 原文地址:https://www.cnblogs.com/wqsbk/p/5067336.html
Copyright © 2011-2022 走看看