• sql 查询字符坐标位置 之PATINDEX()函数详解


    patindex与charindex相似,patindex可以匹配正则表达式

    PATINDEX('%[^0-9]%',@currentStr) --patindex与charindex相似,patindex可以匹配正则表达式,
    --%%表示任意字符串,^表示不匹配,^0-9表示不匹配数字,返回字符串在原字符串中的位置

    前言:

    在sql语句查询中,有时候,我们可以通过like模糊查询来判断是否存在某个数据,但是,当我们要确定某个字符串第一次出现的位置时,like语句查询是无法实现的。但是,可以通过patindex()函数来实现。

    1.概念:
    patindex是用于返回指定模式开始位置的一个函数,其中,模式是可以包含通配符的字面字符串。开始位置从1开始算起,当知道模式中的字符串存在于表达式中时,会返回第一次出现的位置。如果不存在,返回数字0.

    2.格式:
    语法格式:PATINDEX ( '%pattern%' , expression )

    说明:pattern:是用于检测的字符串,expression是一个表达式,可以是任意有效的数据类型,pattern会用在expression表达式中进行检测,存在就返回第一次出现的位置,不存在就返回0,下标位置从1开始。

    3.具体格式:
    1).PATINDEX ( '%pattern%' , expression ):指定字符串前后模糊查询:

    代码1:select patindex('%34%','13543452123')

    返回结果图:

     

     代码2:select patindex('%36%','13543452123')

    返回结果图:

     

    说明:代码1中,指定的字符串34,在表达式中,第一次出现的位置是5,所以返回数字5。代码2中,指定字符串36没有在表达式中,所以返回数字0

    3.PATINDEX 支持在[]中括号^否定号中查询
    []中括号格式:PATINDEX ( '%[pattern]%' , expression )

    ^否定号中格式:PATINDEX ( '%[^pattern]%' , expression )

    说明:[]是一个特殊的符号,是指[]中任意的一个字符只要在表达式expression中出现,就直接返回其第一次出现的位置。

    [^]是一个否定符号,指表达式中,除了[]中指定的字符之外,其他任意字符第一次出现的位置。

    1).PATINDEX ( '%[pattern]%' , expression ):指定字符串中,只要任意一个值在表达式中出现,就返回第一次出现的位置。

    代码1:select PATINDEX('%[ab]%','weaqbr')

    返回结果图:

     

    代码2:select PATINDEX('%[ab]%','wetqyr')

    返回结果图:

     

     

    说明:[]中括号中,只要指定字符串任意一个字符出现在表达式中,就返回第一次出现的字符的位置。如果[]中括号中任意的字符串都没有在表达式中,就直接返回数字0.代码1中,指定的字符串a和b都在表达式中,表达式中a第一次出现的位置是3,所以直接返回a第一次出现的位置3,不在考虑b的位置了。而代码2中,指定字符串a和b都没有在表达式中,所以直接返回数字0.

    2).PATINDEX ( '%[^pattern]%' , expression ):表达式中除了指定字符串之外,返回其他任意字符串第一次出现的位置

    代码1:select PATINDEX('%[^12]%','1342567')

    返回结果图:

     

    大码2:select PATINDEX('%[^12]%','12212211')

    返回结果图:

     

     

    说明:%[^pattern]%:否定符^格式是指,在表达式中,返回除了指定字符串之外的任意字符串中第一次出现的位置。

    代码1中,指定字符串为1和2,在表达式中,除了1和2之外,第一次出现的字符是3,位置为2,所以返回第一次出现的位置为数字2。代码2中,指定字符串为1和2,而表达式中的字符串都是1和2,没有其他的字符串存在,所以返回数字0.

     

  • 相关阅读:
    caffe杂
    easyui 扩展layout的方法,支持动态添加删除块
    easyui换主题,并记录在cookie
    $.messager.show扩展:指定位置显示
    easyui 扩展 之 Tree的simpleData加载
    easyui menu 添加hideItem/showItem 方法
    HTML标签及属性大全
    适应各种内核浏览器的透明修过样式
    让IE6支持min-width和max-width的方法
    javascript获取html标记的的绝对定位值
  • 原文地址:https://www.cnblogs.com/canfengfeixue/p/16133780.html
Copyright © 2020-2023  润新知