MS SQL Server有没有查找字符串位置的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS SQL Server有没有查找字符串位置的函数相关的知识,希望对你有一定的参考价值。

sql 查找字符串位置使用 CHARINDEX函数。

CHARINDEX函数,在一段字符中搜索字符或者字符串。

语法

CHARINDEX ( expression1 , expression2 , [ start_location ] )

参数

expression1

一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。

start_location

在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从expression2 的起始位置开始搜索。

返回类型

int


例:

参考技术A charindex
(字符串表达式1,字符串表达式2[,整数表达式])
select charindex('ab','BCabTabD')返回3
select charindex('ab','BCabTabD',4)返回6
在字符串2中查找字符串1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一个是null则返回null。
可以指定在字符串2中查找的起始位置。本回答被提问者和网友采纳
参考技术B charindex 参考技术C sql 查找字符串位置使用 CHARINDEX函数。
CHARINDEX函数,在一段字符中搜索字符或者字符串。
语法
CHARINDEX ( expression1 , expression2 , [ start_location ] )
参数
expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从expression2 的起始位置开始搜索。
返回类型
int
select CHARINDEX('n','china',1) as 'n的位置'

sql server中的charindex

SQL Server中提供了一个charindex()方法用于查找一个字符/字符串在另一个字符/字符串中的位置。

语法

charindex(expressionToFind, expressionToSearch[, start_location])

参数

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

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

start_location:开始查找的位置,为空时默认从第一位开始查找。为零或为负数,都按一开始计算查找位置。

返回值

返回值是被查找的字符/字符串在目标字符/字符串中出现的位置,从1开始计算查找位置(非下标,是实际的位置)。如果没找到匹配的字符/字符串位置,返回0。

简单示例

select charindex(a, yanggb, 1); -- 2

经典应用

select case when charindex(yanggb1, yanggb1,yanggb2,yanggb3) <> 0 then 1 else 0 end has_permission; -- 1

 

"太久没见的人,会慢慢的,连想念也没有。"

以上是关于MS SQL Server有没有查找字符串位置的函数的主要内容,如果未能解决你的问题,请参考以下文章

如何找到 MS SQL Server 2008 的端口?

在 MS Access 或 SQL Server 中查找 2 个表之间的差异

类似于 MySQL FIELD() 函数的 MS SQL Server 功能是啥?

sql server中的charindex

MS SQL Server 位列导出为布尔值

sql server 字符匹配 有关汉字