charindex函数是什么意思

charindex函数是什么意思,第1张

charindex函数是什么意思

charindex函数介绍

一、语法

CHARINDEX ( char1 ,string1 [ , start_location ] )

如果 char1 或 string1 之一是 Unicode 数据类型(nvarchar 或 nchar)而另一个不是,则将另一个转换为 Unicode 数据类型。CHARINDEX 不能与 text、ntext 和 image 数据类型一起使用。

如果 char1 或 string1 之一为 NULL,并且数据库兼容级别为 70 或更高,则 CHARINDEX 将返回 NULL。如果数据库兼容级别为 65 或更低,则 CHARINDEX 将仅在 char1 和 string1 都为 NULL 时才返回 NULL 值。

如果在 char1 内找不到 string1,则 CHARINDEX 返回 0。

char1 一个表达式,其中包含要查找的字符的序列。

string1 一个表达式,通常是一个为指定序列搜索的列。string1 属于字符串数据类别。

start_location 开始在 string1 中搜索 char1 时的字符位置。

如果 start_location 未被指定、是一个负数或零,则将从 string1 的开头开始搜索。start_location 可以是 bigint 类型。

string1 中包含 char1 时返回字符位置

string1 中不包含 char1 时返回0

二、举例

USE AdventureWorks

SELECT CHARINDEX('bicycle', DocumentSummary)

FROM Production.Document

WHERE DocumentID = 3

返回结果为48。

SELECT CHARINDEX('bicycle1', DocumentSummary, 5)

FROM Production.Document

WHERE DocumentID = 3

返回结果为0。

查询DocumentSummary字段中包含"bicycle"的所有行。

一般大家都会写成这样:

select * from Production.Document

where DocumentSummary like'%bicycle%'

了解这个函数以后,大家可以这样写:

select * from Production.Document

where charindex('bicycle',DocumentSummary)>0

这种方法比like'%%'的形式速度上要快很多.

数据库优化的时候可以考虑使用sql 2005的函数.

SQL server中patindexh和charindex函数,都可以在一段字符中搜索字符或字符串。

主要区别在:patindex函数支持使用通配符来进行搜索,charindex不支持通配符。

一、patindex函数

语法格式:patindex ( %pattern% , expression )

pattern:是要搜索的字符串

expression:是被搜索的字符串。

patindex函数返回字符或字符串在另一个字符串或表达式中的起始位置。

patindex函数支持搜索字符串中使用通配符,这也是patindexh和charindex函数主要的区别。

例:

patindex(%bc%,abcd) --返回:2

patindex(ab%,abcd) --返回:1

SQL中可以使用的通配符有:

1、%,替代一个或多个字符

2、_,仅替代一个字符

3、[charlist],字符列中的任何单一字符

4、[^charlist]或者[!charlist],不在字符列中的任何单一字符

二、charindex 函数

语法格式:charindex ( expression1 , expression2 [ , start_location ] )

expression1:是在expression2中寻找的字符

start_location:是charindex函数开始在expression2中找expression1的位置

charindex函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如charindex没有找到要找的字符串,那么函数整数0。

例:

charindex(sql, microsoft sql server) --返回:11

charindex(7.0, microsoft sql server 2000) --返回:0


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6689642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存