要求: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 ......

oracle取字段第三位字符,oracle截取字符串(截取某个字符前面的字符串)相关推荐

  1. 格式化输出,浮点数e,f,g保留位数的计算方式不同,e,f :%.3e/f:取小数点后三位,g:%.3g总共有效位数为3,不包括小数点

    格式化输出:format() format():把传统的%替换为{}来实现格式化输出 使用位置参数:就是在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串,位置 ...

  2. oracle取字段部分内容,oracle截取字段中某部分数据

    Oracle提前某数据的 前几位或后几位 用substr函数. 如test表中数据如下: 现要提取dept字段中的前两位,可用如下语句: select id,name,substr(dept,1,2) ...

  3. oracle查询保留小数点后三位,关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)...

    方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999999999999999.00') as amount 不足之处是,如果数值是0的话 ...

  4. sql oracle分页查询,【SQL】Oracle分页查询的三种方法-Oracle

    [SQL]Oracle分页查询的三种方法 采用伪列 rownum 查询前10条记录 [sql] select * from t_user t where ROWNUM <10; 按照学生ID排名 ...

  5. 【Oracle】plsql连接64位的Oracle

    32位Oracle客户端下载地址 当我们安装64位的Oracle,想借助plsql来连接oracle时,发现是不能连接的,因为plsql没有64位的版本,因此我们需要借助Oracle的32位客户端.这 ...

  6. c#取小数点后三位_VB.NetC#-取小数点后几位但不四舍五入的方法

    导读热词 方法1: int n=3://例如取小数位3位 double a=1.1234567: int index = a.ToString().IndexOf(".");//取 ...

  7. oracle修改字段详解,详解Oracle修改字段类型方法总结

    最近学习了Oracle修改字段类型方法,留做记录. 有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行: sql;" ...

  8. oracle语句取字段前2位,oracle截取某一个字符之前或之后的值;substr();instr()

    PCB电路板上防潮绝缘抗腐蚀的三防漆 三防漆(Conformal Coating)是一种涂在电路板上以形成保护膜的方法,这层保护膜通常仅是薄薄的一层(约30-210µm),它可以用来加强电子产品的防潮 ...

  9. oracle 取字段长度为5,oracle9i中varchar2(5)字段长度不足5前面补0?

    oracle9i中varchar2(5)字段长度不足5前面补0? mip版  关注:201  答案:2  悬赏:20 解决时间 2021-01-19 11:34 已解决 2021-01-18 23:5 ...

最新文章

  1. JavaScript强化教程——对象的值传递和引用传递
  2. git 如何删除本地创建的仓库(转载自 https://segmentfault.com/q/1010000002996177?_ea=262685)...
  3. Spring精华问答 | Spring Boot有哪些优点?
  4. python中方法调用方法_Python中实现结构相似的函数调用方法
  5. 用Markdown格式写一份前端简历
  6. 乱舞三国java_真.乱舞三国-江山美色
  7. python误差修正模型_误差修正模型ECM_eviews误差修正模型
  8. Inferred type 'S' for type parameter 'S' is not within its bound
  9. VmBox下安装linux CentOS-7资料
  10. ubuntu14.04安装Kile
  11. 聚观早报 | Apple Music推出新功能;苹果汽车最早于2026年发布
  12. Matlab axis用法
  13. c语言体重指数bmi计算器,身高106cm体重19.5kg的女性标准体重与BMI指数 - BMI计算器...
  14. 计算机考研基础必考知识点,2020考研计算机数学49个基础知识点
  15. 反复p图、修图,照片画质低如何修复模糊图片为高清?
  16. 论文:Aurora Guard_ Real-Time Face Anti-Spoofing via Light Reflection
  17. Scala 中 ensuring 方法的使用说明
  18. 杨广悟道第一课:年月日时天干地支的计算方法
  19. linux 虚拟机安装Perl
  20. 剪映windows版1.0的使用

热门文章

  1. mysql如何保证数据不丢失_23 | MySQL是怎么保证数据不丢的?
  2. 从壹开始前后端分离 [ vue + .netcore 补充教程 ] 三十║ Nuxt实战:动态路由+同构...
  3. Spring Cloud Feign 1(声明式服务调用Feign 简介)
  4. LeetCode--path sum ii
  5. cnBlog的windows live writer 客户端配置
  6. deleter mysql,如何通过env文件传递docker中的环境变量?
  7. pstack: Input/output error failed to read target解决
  8. Linux音频驱动开发概括
  9. Android5.x(NTP和NITZ)时间同步
  10. 关于LD_PRELOAD在Android API HOOK中的应用