首页 > 数据库 >Sql中CHARINDEX用法

Sql中CHARINDEX用法

时间:2022-11-26 11:22:06浏览次数:40  
标签:PATINDEX 字符串 用法 CHARINDEX 大小写 Sql Test select

https://www.cnblogs.com/qianxingdewoniu/p/6858580.html

 CHARINDEX作用

  写SQL语句我们经常需要判断一个字符串中是否包含另一个字符串,但是SQL SERVER中并没有像C#提供了Contains函数,不过SQL SERVER中提供了一个叫CHAEINDX的函数,顾名思义就是找到字符(char)的位置(index),既然能够知道所在的位置,当然就可以判断是否包含在其中了。

      通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0。

      基本语法如下:

  CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

      expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。

  expressionToSearch :用于被查找的字符串。

      start_location:开始查找的位置,为空时默认从第一位开始查找。

 

CHAEINDEX示例

  1.简单用法  

  select charindex('test','this Test is Test')

  查询结果:  

  2.增加开始位置

  select charindex('test','this Test is Test',7)

  查询结果:

  3.大小写敏感

  select charindex('test','this Test is Test'COLLATE Latin1_General_CS_AS)

  查询结果:

  返回结果为0???,不要怀疑你的眼睛,因为大小写敏感,找不到test所以返回的就是0,默认情况下, SQL SERVER是大小不敏感的,所以我们简单示例中返回结果不为0,但是有些时候我们需要特意去区分大小写,因此专门SQL SERVE提供了特殊的关键字用于查询时区分大小写,其中CS为Case-Sensitve的缩写。

  4.大小写不敏感

  select charindex('Test','this Test is Test'COLLATE Latin1_General_CI_AS)

  查询结果:

  我们也可以这样说明是大小写不敏感,其中CI是Case-InSensitve的缩写,即大小写不敏感,当然我们没必要多此一举。

 

PATINDEX

  和CHARINDEX类似,PATINDEX也可以用来判断一个字符串中是否包含另一个字符串,两种的差异在于,前者是全匹配,后者支持模糊匹配。

  1.简单示例

  select PATINDEX('%ter%','interesting data')

  查询结果:

  2.简单示例2

  select PATINDEX('%t_ng%','interesting data')

  查询结果:

 

  PATINDEX也允许支持大小写敏感,做法和CHARINDEX一样,此处不再累述。

标签:PATINDEX,字符串,用法,CHARINDEX,大小写,Sql,Test,select
From: https://www.cnblogs.com/Dongmy/p/16927109.html

相关文章

  • Kettle:跨库(SQLServer->PostgreSQL)同步多张表数据的详细设计过程
    〇、参考地址1、多个Excel实现同步https://www.wangt.cc/2021/05/kettle%E5%A4%9A%E4%B8%AA%E8%A1%A8%E4%B8%80%E8%B5%B7%E8%BF%81%E7%A7%BB-%E9%80%9A%E8%BF%87%E9%85%8......
  • AutoLisp的 car、cadr、caddr、cdr用法
    特别注意的是点表的表现形式有所不同。这点困惑了我一段时间,我最开始以为点表的点也是一个数据,后来发现不是。cdr 返回去掉了第一个元素的表(cdr......
  • 介绍C语言中的关键字 typedef 的用法
    概述typedef作用是为一种数据类型定义一个新的名字(包括数据类型int、char等+自定义的数据类型struct等)。typedef作为一个存储类的关键字,不能与auto、extern、static、reg......
  • Linux安装MySQL
    Linux安装Mysql安装Linux安装Linux下载Mysql点击[下载]((https://downloads.mysql.com/archives/community/)跳转到MySQL在Linux中也可以使用wget+链接,需要先使用......
  • 写sql语句报错
    写sql语句报错提示为ERROR1052:Column'eid'infieldlistisambiguous错误的sql="selectcid,cname,eid,ename,count,endtimefromcard,userswherecard.eid=use......
  • Flyway Teams Edition or MySQL upgrade required: MySQL 5.6 is no longer supported
    运行项目的时候出现org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'flywayInitializer'definedinclasspathresource[o......
  • 高可用性、负载均衡的mysql集群解决方案
    一、mysql的市场占有率二、mysql为什么受到如此的欢迎三、mysql数据库系统的优缺点四、网络服务器的需求五、什么是mysql的集群六、什么是负载均衡七、mysql集群部署和实现......
  • linux云服务器CentOS7.6系统中布署Python+mysql项目
    记录下在LinuxCentOS7.6系统中如何布署python项目的步骤1,登录到服务器(sshroot@127.***.*.*)2,修改CentOS中的selinux安全服务程序,它在/ect/selinux/config目录下,修改它......
  • MySQL数据查询关键字
    昨日内容回顾数据基础约束条件非空唯一无符号零填充主键的使用具有唯一性标识的字段即为主键,主键常采用自增的数字。数字的自增进程单独记录,不会因为数据的......
  • Mysql-数据库设计
    ......