|
要在ORACLE数据库中实现一段字符串截取的功能,可以用以下函数实现 instr (string1, string2, [start_position], [nth_appearance]) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; string1 被搜索的字符串 string2 希望搜索的字符串 start_position 搜索的开始位置,默认为1 nth_appearance 希望搜索的字符串的出现的位置,默认为1 var str='小李'
select decode(instr(str,',',1,1),0,str,null) as mdlist From dual --结果-- mdlist 小李
var str='小李,小张'
select decode(instr(str,',',1,1),0,str,decode(instr(str,',',instr(str,',',1,1),2),0,str,null)) as mdlist From dual --结果-- mdlist 小李,小张
var str='小李,小张,小王......'
select decode(instr(str,',',1,1),0,str, decode(instr(str,',', instr(str,',',1,1),2),0,str, substr(str,1,instr(str,',', instr(str,',',1,1),2)-1))) as mdlist From dual --结果-- mdlist 小李,小张
select decode(instr(str,',',1,1),0,str, decode(instr(str,',', instr(str,',',1,1),3),0,str, substr(str,1,instr(str,',', instr(str,',',1,1),2)-1))) as mdlist From dual --结果-- mdlist 小李,小张,小王
|