首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库截取字符串SUBSTR函数的使用

数据库截取字符串SUBSTR函数的使用

作者头像
Dawnzhang
发布2018-10-18 14:41:17
1.4K0
发布2018-10-18 14:41:17
举报

背景

今天中午做需求的时候,有类似于根据银行卡卡号的前几位判断出是哪个银行的情况,每个银行需要截取的位数都不一样,这时我就想到了SUBSTR

数据库截取字符串SUBSTR函数的使用

假设有一个表的结构如下(表名tlk_bnkld_card)

写sql语句的时候就能看到有很多的substr函数的提示,各人根据需求选用。

其中的 str表示被截取的字段

    pos表示开始的下标

    len表示截取的长度

SUBSTR(str FROM pos FOR len)的使用:

1 SELECT SUBSTR(idtf_value FROM 1 FOR 2) idtfValue
2 FROM tlk_bnkld_card
3 WHERE 1=1

 截取字段idtf_value ,从第一位开始截取,截取两位

执行结果

SUBSTR(str FROM pos) 的使用

1 SELECT SUBSTR(idtf_value  FROM 2) idtfValue
2 FROM tlk_bnkld_card
3 WHERE 1=1

截取字段idtf_value ,从第二位截取到结束

执行结果:

SUBSTRING与SUBSTR区别不大,输出结果一致;

1 SUBSTR(str,pos)
2 SUBSTR(str,pos,len)
3 SUBSTRING(str FROM pos FOR len)
4 SUBSTRING(str FROM pos)
5 SUBSTRING(str,pos)
6 SUBSTRING(str,pos,len)

这几个函数的用法和上面的两种类似,参见上述;

SUBSTRING_INDEX(str,delim,count)函数的用法

用法规则:

SUBSTRING_INDEX(“待截取有用部分的字符串”,“截取数据依据的字符”,截取字符的位置N)

例如:
1 SELECT SUBSTRING_INDEX(idtf_value,'4',2) idtfValue
2 FROM tlk_bnkld_card
3 WHERE idtf_value='392454'

将字符串用"4"分割开,截取从开始到第二个“4”之前的字符串输出

执行结果
 注意:

假如有负号像这样

1 SELECT SUBSTRING_INDEX(idtf_value,'4',-2) idtfValue
2 FROM tlk_bnkld_card
3 WHERE idtf_value='392454'

截取时就说从后往前截取,截取到从后面数的第二个之前

执行结果
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 数据库截取字符串SUBSTR函数的使用
    • SUBSTR(str FROM pos FOR len)的使用:
      • 执行结果
    • SUBSTR(str FROM pos) 的使用
      • 执行结果:
    • 这几个函数的用法和上面的两种类似,参见上述;
      • SUBSTRING_INDEX(str,delim,count)函数的用法
        • 用法规则:
        • 例如:
        • 执行结果
        •  注意:
        • 执行结果
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档