首页 > 数据库 >SqlServer中charindex函数

SqlServer中charindex函数

时间:2024-02-03 16:13:47浏览次数:28  
标签:PATINDEX 函数 SqlServer charindex 字符串 Test 大小写 select

SqlServer中charindex函数

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')

  查询结果:  6

2.增加开始位置

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

  查询结果:14

3.大小写敏感

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

  查询结果:0

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

4.大小写不敏感

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

  查询结果:6

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

 

PATINDEX

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

1.简单示例

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

  查询结果:3

2.简单示例2

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

  查询结果:8

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

标签:PATINDEX,函数,SqlServer,charindex,字符串,Test,大小写,select
From: https://www.cnblogs.com/nuomibaibai/p/18004866

相关文章

  • 小程序云函数 异步请求
    单层请求exports.main=async(event,context)=>{const{from,to,date,message}=event;awaitdb.collection('chatRoom').where({chat:_.all([from,to])}).update({data:{message:_.push({from,to,date,message})......
  • 无涯教程-sort()函数
    sort()方法对数组的元素进行排序。sort()-语法array.sort(compareFunction);compareFunction  - 指定一个定义排序顺序的函数。如果省略,则按字典顺序对数组进行排序。sort()-返回值返回一个排序数组。sort()-示例vararr=newArray("orange","mango",......
  • 无涯教程-slice()函数
    slice()方法选取数组的一部分,并返回一个新数组。slice()-语法array.slice(begin[,end]);begin  - 从零开始的索引。作为负索引,start表示从序列结尾开始的偏移量。end    - 从零开始的索引,终止提取。slice()-返回值根据传递的参数返回提取的数......
  • Lambda表达式(匿名函数)
    C++11中引入了lambda表达式,定义匿名的内联函数。我们可以直接原地定义函数而不用再跑到外面去定义函数跳来跳去。同时在stl的排序上也有作用。[capture](parameters)mutable->return-type{statement}下面逐一介绍各个参数的含义.[capture]:捕获:作用是让匿名函数能够......
  • SqlServer使用GroupBy分组时, 设置当查询不到某个分组时, 默认赋值一个0
    现在有个需求,需要将分组查询并统计个数后返回数据,但是当数据中没有对应的分组时就查询不到对应的数据,比如使用下面的Sql语句查询(State为Table1的字段,值为int类型)点击查看代码select caseState when0then'开工' when1then'等待' when2then'完工' ......
  • 无涯教程-reduceRight()函数
    reduceRight()方法将数组元素计算为一个值(从右到左),以将其简化为单个值。reduceRight()-语法array.reduceRight(callback[,initialValue]);callback    - 对数组中的每个值执行的函数。initialValue- 用作首次调用回调的第一个参数的对象。reduceRigh......
  • 无涯教程-reduce()函数
    reduce()方法将数组元素计算为一个值(从左到右),以将其简化为单个值。reduce()-语法array.reduce(callback[,initialValue]);callback    - 对数组中的每个值执行的函数。initialValue - 用作首次调用回调的第一个参数的对象。reduce()-返回值返回......
  • 无涯教程-push()函数
    push()方法向数组的末尾添加一个或更多元素,并返回新的长度。push()-语法array.push(element1,...,elementN);element1,...,elementN  - 要添加到数组末尾的元素。push()-返回值返回新数组的长度。push()-示例varnumbers=newArray(1,4,9);varlength=......
  • 解析几何基础 反比例函数
    若\(k\)相等,两直线平行\[A(x_1,y_1),B(x_2,y_2)\]\[K=\frac{y_1-y_2}{x_1-x_2}=\frac{y_2-y_1}{x_2-x_1}\]反比例函数\[\begin{cases}y=\frac{k}{x}(k\neq0)&k\rightarrow比例系数(常见)\\y=kx^{-1}(k\neq0)\\xy=k(k\neq0)\end{cases}\]双......
  • 解析几何基础 坐标系与函数
    定义与概念正交坐标系有序实数对※在轴上的点不在象限内\(y=0\quad\quadx\)轴\(\quad\)平行于\(x\)轴的一条直线\(x=0\quad\quady\)轴\(\quad\)平行于\(y\)轴的一条直线点到轴的距离\[A(x,y)=\begin{cases}d_{A\simy}=|m-y|&y=m\\d_{A......