即从最后一个"/"截取,取到图片的名称,原本的路径+名称 执行sql语句,得到原本的数据结果: select p.countryname,p.countrypic from t_d_Country p where p.s_isdeleted = 0 order by nlssort(trim...
简单明了实用,废话不多说:
select substr('a,',2,1) from dual;
substr('要截取的字符',字符的长度,字符长度-1)
延伸:
select substr(t.province,length(t.province),length(t.province)-1) from t_d_Sysnotice t where t.province is not null
=============================================================================================
数据库中的数据:/res/upload/interface/apptutorials/country/fb3749d1-0621-423d-95e5-095bfce417e5.png
目标结果:fb3749d1-0621-423d-95e5-095bfce417e5.png
即从最后一个"/"截取,取到图片的名称,原本的路径+名称
执行sql语句,得到原本的数据结果:
select p.countryname,p.countrypic from t_d_Country p where p.s_isdeleted = 0 order by nlssort(trim(p.countryname),'NLS_SORT=SCHINESE_PINYIN_M') asc
目标sql语句:
select p.countryname, substr(p.countrypic, length(p.countrypic) - instr(p.countrypic, '/',-1,1)+4, length(p.countrypic)) from t_d_Country p where 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
oracle中的substr延伸:http://www.cnblogs.com/suding1188/archive/2012/05/25/2517901.html
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中instr延伸:http://blog.163.com/liu_yang1234/blog/static/2447431020112290109559/
【“开始的位置”为正数:顺着取;负数,倒着取】
在实际工作中经常遇到截取两个相同字符串之间的字符的oracle问题,以下是相关语句
oracle截取某一个字符之前或之后的值;substr();instr() 函数介绍: 截取的函数: substr(?,?); 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;
函数介绍:截取的函数: substr(?,?); substr(?,?,?); 获取目标字符出现的位置: instr(? , ? , ? ); instr( ? , ? , ? , ? ) 例:字符串"AAA-BBB"截取"AAA...

函数介绍:

截取的函数:
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;
Oracle截取 “_”字符后的字符串 数据库表记录 结果记录 将ADDR_NAME 字段的字符串按照下划线 “_” 进行分割,依次得到 “hehe”、“haha”、“lala”、“heihei”、“meimei” 这样五个字符串 问题解决 SELECT...

问题描述

Oracle 截取 “_” 字符后的字符串

数据库表记录

结果记录

将ADDR_NAME字段的字符串按照下划线 “_” 进行分割,依次得到 “hehe”、“haha”、“lala”、“heihei”、“meimei” 这样五个字符串

问题解决

SELECT ADDR_NAME, SUBSTR( ADDR_NAME, INSTR( ADDR_NAME,'_',1)+1) NAME FROM TS_USER
按照上述 SQL 语句执行后,得到 “hehe”、“haha”、“lala”、“heihei”、“meimei” 这样五个字符串:

分析

instr 函数:返回子字符串在源字符串中的位置
语法:INSTR(string,child_string,[start],[show_time])
string:表示源字符串。ADDR_NAME
child_string:子字符串,即要查找的字符串。_
start:可选项,开始位置,默认从1开始。如果为负数,则从右向左检索。
show_time:可选项,表示子字符串第几次出现在源字符串当中,默认第1次,负数则报错。
# 返回 '_'字符 在ADDR_NAME 中的位置select INSTR( ADDR_NAME,'_',1)from TS_USER
substr 函数:截取字符串
语法:SUBSTR(string,start, [length])
string:表示源字符串,即要截取的字符串。ADDR_NAME
start:开始位置,下表从1开始。如果start是负数,则从string字符串末尾开始算起。INSTR( ADDR_NAME, '_', 1 ) + 1 代表的含义为 :"_" 的后一个字符
length:可选项,表示截取字符串长度。
返回从“_” 的后一个字符到字符串末尾的所有字符。
SELECT ADDR_NAME, SUBSTR( ADDR_NAME, INSTR( ADDR_NAME,'_',1)+1) NAME FROM TS_USER

参考链接

oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果
substr 函数:截取字符串	语法:SUBSTR(string,start,[length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项...
oracle截取字符串和查找字符oracle截取字符(substr),检索字符位置(instr) 常用函数:substr和instr1.SUBSTR(string,start_position,[length])截取子字符串,返回字符串解释:string 元字符串start_position...
去掉回车,换行符号,截取指定长度的字符 ... 2 --去掉前后空格,截取字符,字符长度为P_Length 3 create or replace function get_StringLen 4 ( 5 P_Name IN VARCHAR2, 6 P_Length IN int 7 ) retu...
create or replace function func_substr_for_2str(p_str in varchar2,p_first_str in varchar2,p_next_str in varchar2) return varchar2 as idx int; idx2 int; ret_str varchar2(4000); begin ...
oracle截取字符串select substr('680',开始截取位数,位数) from dual
substr(字符串,instr(字符串,'/',-1)+1) 获取字符串中最后一个 "/"后面的数据字符串1||'_'||字符串2||'_'||字符串3 拼接字符串1+字符串2+字符串3
主要介绍了Oracle截取JSON字符串内容 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了Oracle截取字符串去掉字段末尾指定长度的字符 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
oracle截取第二个横线后的所有字符字符串为AA-BB-CC-DD截取后为CC-DD
比如有一个a字段格式如下: aaaa-bbbb-cc 要截取最后的cc 1,首先获取最后一次出现的-...2,从最后一次出现-的位置开始截取字符串 下标加一,然后截取 substr('aaaa-bbbb-cc',instr('aaaa-bbbb-cc','-',-1)+1)
oracle截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 常用函数:substr和instr 1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串 解释:string 元字符串 ...
Oracle截取字符串和查找字符串 oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 常用函数:substr和instr 1.SUBSTR(string,start_position,[length])求子字符串,...
--截取第N位開始的所有 break break eak 一般0和1好像沒什麽區別 SELECT SUBSTR ('break', 1) FROM DUAL; SELECT SUBSTR ('break', 0) FROM DUAL; SELECT SUBSTR ('break', 3) FROM DUAL; --截取從第二位開始...
instr(string,'substring,position,ocurrence) select substr('索尼-爱立信-华为',instr('索尼-爱立信-华为','-',-1,1)+1) from dual