首页 > 编程知识 正文

oracle的substr函数用法,字符串常用函数

时间:2023-05-05 01:32:53 阅读:134467 作者:1831

背景

今天中午做需求的时候,会根据银行卡号的上位来判断是哪家银行,每个银行应该剪切的位数都不一样。 那时,我想到了SUBSTR

使用数据库侦听字符串SUBSTR函数

假设您有以下表格结构: 表名tlk_bnkld_card )

写sql语句时可以看到很多substr函数的提示。 每个人根据需要进行选择。

str表示被剪切的字段

pos表示开始的下标

len表示剪切的长度

使用substr(strfromposforlen ) :

1 select substr (idtf _ value from1for2) IDT fvalue2from tlk _ bn kld _ card3where1=1

剪切字段idtf_value,从第一位开始剪切,剪切2位

执行结果

使用substr(strfrompos )

1selectsubstr(IDTF_valuefrom2) IDT fvalue2from tlk _ bn kld _ card3where1=1

剪切字段idtf_value,从第二位剪切到末尾

执行结果:

SUBSTRING与SUBSTR相差不大,输出结果一致

1substr(str,pos )2substr(str,pos,len )3substring ) strfromposforlen )4substring ) strfrompos )5substring ) str,5

这些函数的用法与上面的两种类似。 见上文;

使用substring_index(str,delim,count )函数

使用规则:

SUBSTRING_INDEX (“剪切有用部分的字符串”、“剪切作为数据依据的字符的字符”、字符的剪切位置n ) )。

例如:

1 select substring _ index (idtf _ value,'4',2 ) IDT fvalue2from tlk _ bn kld _ card3whereidtf _ value=' 392454 '

用'4'分割字符串,剪切从开头到第二个“4”的字符串并输出

执行结果

注意:

如果像这样有负号的话

1 select substring _ index (idtf _ value,'4',-2) IDT fvalue2from tlk _ bn kld _ card3whereidtf _ value=' 392454 '

剪切的时候说从后向前剪切,从后到第二个前剪切

执行结果

欢迎关注大侠号,不定时晒衣服,只做有价值的输出

作者: Dawnzhang

资料来源: https://www.cn blogs.com/clwydjgs/p/9324255.html

版权:本文版权归作者所有

转载:欢迎转载,但未经作者同意,本声明应予保留;并对文章提供原文联系; 否则就要追究法律责任

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。