zoukankan      html  css  js  c++  java
  • 数据库截取字符串SUBSTR函数的使用

    背景

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

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

    执行结果

     

    欢迎大家关注公众号,不定时干货,只做有价值的输出

    作者:Dawnzhang 
    出处:https://www.cnblogs.com/clwydjgs/p/9324255.html
    版权:本文版权归作者
    转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

  • 相关阅读:
    如何解决DEDE织梦友情链接字数限制与链接个数限制的问题?
    织梦内容页调取文章缩略图
    如何删除织梦系统power by dedecms
    在联系我们里面添加公司地图坐标地理位置
    织梦后台添加了一篇文章 但是前台显示两篇一模一样的文章
    dedecms织梦上下页标签和CSS
    ZooKeeper+Dubbox分布式框架
    mac远程控制linux,安装jdk
    mac下myeclipse2017安装activiti插件
    java为什么要实现serializable序列化
  • 原文地址:https://www.cnblogs.com/clwydjgs/p/9324255.html
Copyright © 2011-2022 走看看