如果字段存的就是这个,那么这个应该是字符串吧,那么就分几步操作。
创新互联主营绥德网站建设的网络公司,主营网站建设方案,app软件开发公司,绥德h5小程序制作搭建,绥德网站营销推广欢迎绥德等地区企业咨询
(1)定位,定位{和:的位置,从现在来看有两种可能,第一种
这是两个字段,分别是{12345:67:8}和{ABC:0:9},那就简单了{肯定是1,所以这个也就不需要定位了,只需要定位第一个冒号的位置。
定位的函数应该是instr
第二种:{12345:67:8}{ABC:0:9}是一个字段的内容,那就麻烦一些,不过也能做,希望不是这样的,因为这个就要麻烦很多了。正则倒是能做,不过正则都要测试,我可没有相应的环境做测试。这里也就不写了,如果是这种,那么自己翻一翻正则函数的用法,应该能写出来。
(2)截取,如果是第一种,那么定位了第一个冒号位置以后,用这个位置-2,也就是
instr(字段,':',1)-2这就是截取的长度,
从第二位开始截取,截取这个长度就可以substr(字段,2,instr(字段,':',1)-2)
这样的话,{12345:67:8}换算到内部就是substr({12345:67:8},2,5(7-2)),【7-2说明5的来源,第一个冒号在第7位】,截取出来就是12345
还是那句话,如果是第二种可能,那么就要找每一个{的位置,然后找在{后面距离最近的冒号的位置,然后再一个个的截取操作,正则应该可以操作,不过我还是那句话,需要测试,意思和这个截取函数差不多,自己好好理解一下应该就能操作了。
关于Oracle里面的一些小函数
要求 A 数据库表中的一个字符串 可能含有 + 例 ORC+
也可能不含 +
B 要求如果该字符串含有 + 则取 + 之前的字符 例 ORC+ 取ORC
C 如果该字符串不含 + 则直接取该字符串
解答 利用ORACLE中 INSTR SUBSTR以及CASE WHEN语法即可实现
Oracle中函数
INSTR INSTR方法的格式为
INSTR(源字符串 目标字符串 起始位置 匹配序号)
默认查找顺序为从左到右 当起始位置为负数的时候 从右边开始查找
例 Select INSTR( ORC+ + ) From dual
返回的是"4" 如果该字符串没有匹配字符 返回的是 0
SUBSTR 取子字符串 取子字符串
SUBSTR(源字符串 起始位置 要取多少位)
从 起始位置 开始 取 多少"个
例 Select SUBSTR( ORC+ ) From dual;
返回的是 ORC
全例如下
表T_RCV_ISSUE
WH_CD字段
取 WH_CD 如果该字段包含 + 取 + 之前的字符
如果该字段没有 + 取整个字段
T_RCV_ISSUE表
WH_CD 分别为 MR PS+ MR WS MR WS+ MR PS
执行
SELECT CASE
WHEN INSTR(WH_CD + )
THEN SUBSTR(WH_CD INSTR(WH_CD + ) )
ELSE WH_CD
END AS WH_CD
FROM T_RCV_ISSUE
lishixinzhi/Article/program/Oracle/201311/17245
oracle截取某一个字符之前或之后的值;substr();instr()
函数介绍:
截取的函数:
substr(?,?);
substr(?,?,?);

获取目标字符出现的位置:
instr(? , ? , ? );
instr( ? , ? , ? , ? )

例:
字符串 "AAA-BBB" 截取"AAA" "BBB"
select substr('AAA-BBB',1,instr('AAA-BBB','-',-1)-1) 值 from dual;

select substr('AAA-BBB',instr('AAA-BBB','-',-1)+1) 值 from dual;

原文链接:
打开CSDN,阅读体验更佳


oracle截取字符串(截取某个字符前面的字符串)_真我的风采i的博客-CSDN...
也可能不含“+” B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORC C.如果该字符串不含"+",则直接取该字符串。 解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。 Oracle中函数 INSTR:INSTR方法的...
Oracle当中怎么截取字符串_怪 咖@的博客_oracle字符串截取
Oracle当中怎么截取字符串 1、字符串截取 substr(‘数据’,开始位置,截止位置); selectsubstr('abcdef',1,3)fromdual 1 instr(‘数据’,‘字符’); 他是从左向右来寻找的,寻找的最近的。
oracle按特定字符截取字符串
oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果
Oracle中字符串截取常用方法总结【推荐】
substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 示例: SELECT SUBSTR('Hello SQL!', 1) FROM dual --截取所有字符串,返回'Hello SQL!' SELECT SUBSTR('Hello SQL!', 2) FROM dual --从第2个字符开始,截取到末尾。返回'ello SQL!' SELECT
最新发布 Oracle 截取字符串substr函数使用方法
Oracle 截取字符串substr函数使用方法
继续访问
oracle截取字符串(截取某个字符前面的字符串)
要求:A.数据库表中的一个字符串 可能含有"+" 例:ORC+001 也可能不含“+” B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORC C.如果该字符串不含"+",则直接取该字符串。 解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。 Oracle中函数 INSTR:INST...
继续访问
oracle截取字符添加数据库,oracle截取字符串前几位的方法_数据库
数据库关系的6个性质_数据库数据库关系的6个性质:1、每一列中的分量为同一类型的数据,来自同一个域;2、不同的列可出自同一个域;3、列的次序可以任意交换;4、任意两个元组不能完全相同;5、行的次序可以任意交换;6、每一个分量都必须是不可分的数据库。 oracle截取字符串前几位的方法Oracle提前某数据的前几位用substr函数。如test表中数据如下: 现要提取dept字段中的前两位,可用如下...
继续访问

oracle 截取某个字符串前面的字符串
select name,substr(name,1,instr(name,'.')-1) 前 ,substr(name,instr(name,'.')+1,length(name)-instr(name,'.')) 后 from user 这里截取的是第一个字符('.')
继续访问
js截取第一个逗号之前的字符串_啃食Oracle:字符串的猛操作验证数据substr,instr,to_number...
啃食Oracle:字符串的猛操作验证数据(考试成绩),substr,instr,to_number说Oracle某表中有一个字段score(成绩),借用with模拟students(学生)表情况如下With students as(Select '1' kh,'语文:125,数学:124,外语:130,综合:211,总分:590' score from dual unionSelect '2' k...
继续访问
oracle截取某一个字符之前或之后的值;substr();instr()
函数介绍: 截取的函数: substr(?,?); substr(?,?,?); 获取目标字符出现的位置: instr(? , ? , ? ); instr( ? , ? , ? , ? ) 例: 字符串 "AAA-BBB" 截取"AAA...
继续访问

oracle取字段部分内容,oracle截取字段中某部分数据
Oracle提前某数据的 前几位或后几位 用substr函数。如test表中数据如下:现要提取dept字段中的前两位,可用如下语句:select id,name,substr(dept,1,2) from test;结果:substr函数介绍:语法:substr(string,start,length)参数:string - 指定的要截取的字符串start - 必需,规定在字符串的何处开始正数 -...
继续访问
oracle根据某个字符取字符串的前面部分
SELECT SUBSTR(字段名,1,instr(字段名,’,’)-1) FROM 表名 –SUBSTR(参数一,参数二,参数三) 参数一:某个字符型字段 参数二:截取开始范围 参数三:截取结束范围 –instr(参数一,参数二) 参数一:某个字符型字段 参数二:需截取的某个特定字符 –instr(参数一,参数二)-1 减掉1其实就是截取到这个特定字符前面的位置 ...
继续访问
Oracle截取某个字段前几个字符subStr
场景: 1. 根据主账户查询子账户交易明细 2. 数据库只有子账户信息(子账户=18位主账户+6位子账户标志), 3. 筛选出多个子账户对应的唯一主账户信息 select distinct substr(BANK_ACCT_NO,1,18) BANK_ACCT_NO from table_name; 说明: 1. BANK_ACCT_NO: 子账户 2. substr(BANK_ACCT_NO,1,18): 1 起始位置, 18 截取长度 3. table_name: 表名 .
继续访问
热门推荐 Oracle中字符串截取最全方法总结
substr 函数:截取字符串 语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 示例: SELECT SUBSTR('Hello SQL!', 1) FROM dual .........
继续访问

oracle取字段第三位字符,oracle截取字符串(截取某个字符前面的字符串)
要求:A.数据库表中的一个字符串 可能含有"+" 例:ORC+001也可能不含“+”B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORCC.如果该字符串不含"+",则直接取该字符串。解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。Oracle中函数INSTR:INSTR方法的格式为INSTR(源字符串, 目标字符串, 起始位置, ...
继续访问
oracle截取符号后的字符串
例如:字符串 “AAA-BBB” 截取"AAA" “BBB” select substr('AAA-BBB',1,instr('AAA-BBB','-',-1)-1) 值 from dual; select substr('AAA-BBB',instr('AAA-BBB','-',-1)+1) 值 from dual;
继续访问
substr/instr
截取字符串 哼哼 substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,表示截取字符串长度。 instr 函数:返回子字符串在源字符串中的位置 语法:INSTR(string,child_...
继续访问
oracle返回逗号前的字段,oracle中通过正则表达式函数处理逗号分隔的字段-Oracle...
oracle中通过正则表达式函数处理逗号分隔的字段这个题目的确不大好写,其实际含义基于一个场景:比如在oracle的某张表中,有两个字段A1 B11 A,B,C,D,2 E,F假如现在的需求,是要统计A1中,每条记录拥有多少个数目的B1,比如A1=1的时候,其B1的字段中有4个以逗号分隔的,所以数目为4,A1=2的,有E,F...
继续访问
oracle截取后面的字符,oracle截取最后一个字符
简单明了实用,废话不多说:selectsubstr('a,',2,1)fromdual;substr('要截取的字符',字符的长度,字符长度-1)延伸:selectsubstr(t.province,length(t.province),length(t.province)-1)fromt_d_Sysnoticetwheret.provinceisnotnull=================...
继续访问
oracle中 sql截取某个字符前面和后面的值
列如截取 ‘?’ 这一杆前后值 select 字段,substr(字段,1,instr(字段,’?’) - 1) 前,substr(字段,instr(字段,’?’) + 1,length(字段)) 后 from 表
继续访问
oracle截取某个字符串前面的字符串
oracle简单明了实用,废话不多说:
selectsubstr('a,',2,1)fromdual;
substr('要截取的字符',字符的长度,字符长度-1)
延伸:
selectsubstr(t.province,length(t.province),length(t.province)-1)fromt_d_Sysnotice twheret.provinceisnotnull
=============================================================================================
【补充 2014-06-30 17:12:48】根据某个特定的字符截取,比如:“/”
数据库中的数据:/res/upload/interface/apptutorials/country/fb3749d1-0621-423d-95e5-095bfce417e5.png
目标结果:fb3749d1-0621-423d-95e5-095bfce417e5.png
即从最后一个"/"截取,取到图片的名称,原本的路径+名称
执行sql语句,得到原本的数据结果:
selectp.countryname,p.countrypicfromt_d_Country pwherep.s_isdeleted = 0orderbynlssort(trim(p.countryname),'NLS_SORT=SCHINESE_PINYIN_M')asc
目标sql语句:
selectp.countryname,
substr(p.countrypic,
length(p.countrypic) - instr(p.countrypic, '/',-1,1)+4,
length(p.countrypic))
fromt_d_Country p
here p.s_isdeleted = 0;
关键的sql语句: substr(p.countrypic,
length(p.countrypic) - instr(p.countrypic, '/',-1,1)+4,
length(p.countrypic))
substr(“要截取的字符串”,"开始的位置",“截取的长度”)
select substr('abcdae', 1,1)from dual;
结果:a
select substr('abcdae', -1,1)from dual;
结果:e
instr(“字符串”,“字符”,“开始的位置”,“取的位置”)
select instr('abcdae','a',1,1) from dual;
结果:1
select instr('abcdae','a',1,2) from dual;
结果:5
select instr('abcdae','a',-1,1) from dual;
结果:5
【“开始的位置”为正数:顺着取;负数,倒着取】
oracle截取后面的字符
自动售货机的 售货机多少钱
精选推荐
广告

Oracle截取字符串去掉字段末尾指定长度的字符
3下载·0评论
2020年9月10日
oracle 获取字符串最后一个字符,使用regexp_instr获取字符串中的最后一个数字
1579阅读·0评论·0点赞
2021年5月2日
Oracle 截取字符串substr函数使用方法
2571阅读·0评论·0点赞
2022年11月7日
Oracle删除字符串中最后一个字符
4092阅读·0评论·1点赞
2021年6月17日
oracle截取最后一个字符
4.8W阅读·0评论·1点赞
2014年5月27日
oracle去掉字段中最后一个字符,Oracle截取字符串去掉字段末尾指定长度的字符
8190阅读·0评论·0点赞
2021年5月1日
这才是我想要的播放器,你用过了么?

精选推荐
广告
oracle截取符号后的字符串
3294阅读·0评论·1点赞
2022年1月12日
Oracle 截取最后一个分隔符的字符串
1106阅读·0评论·0点赞
2022年4月11日
oracle截取某一个字符之前或之后的值
8264阅读·0评论·2点赞
2021年9月10日
substr/instr
145阅读·0评论·0点赞
2019年12月24日
Oracle获取字符串的最后几位
3.0W阅读·0评论·3点赞
2018年8月6日
oracle中截取字段中某一个字符最后一次出现的位置到末尾
4412阅读·0评论·1点赞
2020年9月25日
Oracle截取字符串:instr、substr、length函数的使用
4296阅读·0评论·1点赞
2022年5月25日
oracle 截取字符串最后几位
8242阅读·0评论·0点赞
2013年4月19日
取最后一个字符 oracle,oracle截取最后一个字符
3943阅读·0评论·0点赞
2021年5月2日
oracle substr截取字符串后几位字符
3569阅读·0评论·0点赞
2022年1月24日
oracle中如何截取字符串中,某个字符后或者字符前的字符串
1.1W阅读·0评论·3点赞
2019年5月20日
js截取第一个逗号之前的字符串_啃食Oracle:字符串的猛操作验证数据substr,instr,to_number...
1893阅读·0评论·0点赞
2020年11月27日
oracle获取字符串最后一个逗号后面的字符
1500阅读·3评论·0点赞
2021年2月3日
去首页
看看更多热门内容
oracle中的date类型字段,截取年份可用to_char函数。
工具:oracle 10g
工具:oracle 10g
步骤:
1、如emp表中有hiredate字段为date类型的数据。
2、截取其中的年份部分,用如下语句:
1
select empno,ename,job,mgr,to_char(hiredate,'yyyy'),sal,comm,deptno from emp;
3、运行后结果,可以看出年份已将截取出来了: