数据库截取字符串SUBSTR函数的使用
2018-07-17 16:52
447 查看
背景
今天中午做需求的时候,有类似于根据银行卡卡号的前几位判断出是哪个银行的情况,每个银行需要截取的位数都不一样,这时我就想到了SUBSTR
数据库截取字符串SUBSTR函数的使用
假设有一个表的结构如下(表名tlk_bnkld_card)
写sql语句的时候就能看到有很多的substr函数的提示,各人根据需求选用。
其中的 str表示被截取的字段 pos表示开始的下标 len表示截取的长度
SUBSTR(str FROM pos FOR len)的使用:
SELECT SUBSTR(idtf_value FROM 1 FOR 2) idtfValue FROM tlk_bnkld_card WHERE 1=1
截取字段idtf_value ,从第一位开始截取,截取两位
执行结果
SUBSTR(str FROM pos) 的使用
SELECT SUBSTR(idtf_value FROM 2) idtfValue FROM tlk_bnkld_card WHERE 1=1
截取字段idtf_value ,从第二位截取到结束
执行结果:
SUBSTRING与SUBSTR区别不大,输出结果一致;
SUBSTR(str,pos) SUBSTR(str,pos,len) SUBSTRING(str FROM pos FOR len) SUBSTRING(str FROM pos) SUBSTRING(str,pos) SUBSTRING(str,pos,len)
这几个函数的用法和上面的两种类似,参见上述;
SUBSTRING_INDEX(str,delim,count)函数的用法
用法规则:
SUBSTRING_INDEX(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)
例如:
SELECT SUBSTRING_INDEX(idtf_value,'4',2) idtfValue FROM tlk_bnkld_card WHERE idtf_value='392454'
将字符串用"4"分割开,截取从开始到第二个“4”之前的字符串输出
执行结果
注意:
假如有负号像这样
SELECT SUBSTRING_INDEX(idtf_value,'4',-2) idtfValue FROM tlk_bnkld_card WHERE idtf_value='392454'
截取时就说从后往前截取,截取到从后面数的第二个之前
执行结果
作者:Dawnzhang
出处:https://www.cnblogs.com/clwydjgs/p/9324255.html
版权:本文版权归作者
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
相关文章推荐
- 数据库字符串截取函数substr、substring以及 case when函数使用
- js字符串截取函数substr substring slice使用对比
- js字符串截取函数substr substring slice使用对比
- 字符串系统函数2文字截取substr
- 解析使用substr截取UTF-8中文字符串出现乱码的问题
- JavaScript substr() 字符串截取函数使用详解
- SQLServer中的字符串截取函数使用示例
- php截取中文字符串无乱码的函数(主函数:ord()、substr())
- JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
- php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
- php 截取一定长度的字符串(该函数对GB2312使用有效
- 字符串截取函数substr()
- 中文字符串截取函数 substr_for_gb2312 and substr_for_utf8
- JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
- 中英文字符串截取函数msubstr
- oracle截取字符串的函数substr
- JavaScript substr() 字符串截取函数使用详解
- dedecms 的cn_substr_utf8字符串截取函数商榷
- oracle中对字母加数字列的排序及截取字符串函数substr介绍
- IE6和IE8下对js字符串截取函数substr兼容性问题