CharIndex的用法Sql
2013-04-19 16:33
253 查看
语法
打印
参数
expressionToFind
包含要查找的序列的字符 表达式。
expressionToFind 最多包含 8000 个字符。
expressionToSearch
要搜索的字符表达式。
start_location
表示搜索起始位置的 integer 或 bigint 表达式。
如果未指定 start_location,该参数为负数或 0,则从 expressionToSearch 开头开始搜索。
返回类型
如果 expressionToSearch 具有 varchar(max)、 nvarchar(max) 或 varbinary(max) 数据类型,则返回 bigint;否则,返回 int。
注释
如果 expressionToFind 或 expressionToSearch 之一具有 Unicode 数据类型( nvarchar 或 nchar),而另一个不是,则将另一个转换为
Unicode 数据类型。
CHARINDEX 不能与 text、 ntext 和 image 数据类型一起使用。
如果 expressionToFind 或 expressionToSearch 为 NULL,则 CHARINDEX
返回 NULL。
如果在 expressionToSearch 中找不到 expressionToFind,则 CHARINDEX 返回 0。
CHARINDEX 根据输入的排序规则执行比较操作。
若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入。
返回的起始位置从 1 开始,而不是从 0 开始。
0x0000 ( char(0)) 是 Windows 排序规则中未定义的字符,不能包括在 CHARINDEX 中。
有关详细信息,请参阅 排序规则和
Unicode 支持。
示例
打印
下面是结果集:
打印
打印
下面是结果集:
打印
打印
下面是结果集:
-----------
0
(1 row(s) affected)
打印
下面是结果集:
-----------
0
以下示例在 'Das ist ein Test' 中执行区分大小写的字符串 'Test' 搜索。
打印
下面是结果集:
-----------
13
打印
下面是结果集:
-----------
13
打印
CHARINDEX ( expressionToFind ,expressionToSearch [ , start_location ] )
参数
expressionToFind
包含要查找的序列的字符 表达式。
expressionToFind 最多包含 8000 个字符。
expressionToSearch
要搜索的字符表达式。
start_location
表示搜索起始位置的 integer 或 bigint 表达式。
如果未指定 start_location,该参数为负数或 0,则从 expressionToSearch 开头开始搜索。
返回类型
如果 expressionToSearch 具有 varchar(max)、 nvarchar(max) 或 varbinary(max) 数据类型,则返回 bigint;否则,返回 int。
注释
如果 expressionToFind 或 expressionToSearch 之一具有 Unicode 数据类型( nvarchar 或 nchar),而另一个不是,则将另一个转换为
Unicode 数据类型。
CHARINDEX 不能与 text、 ntext 和 image 数据类型一起使用。
如果 expressionToFind 或 expressionToSearch 为 NULL,则 CHARINDEX
返回 NULL。
如果在 expressionToSearch 中找不到 expressionToFind,则 CHARINDEX 返回 0。
CHARINDEX 根据输入的排序规则执行比较操作。
若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入。
返回的起始位置从 1 开始,而不是从 0 开始。
0x0000 ( char(0)) 是 Windows 排序规则中未定义的字符,不能包括在 CHARINDEX 中。
补充字符(代理项对)
在使用 SC 排序规则时, start_location 和返回值将代理项对计为一个字符,而不是计为两个字符。有关详细信息,请参阅 排序规则和
Unicode 支持。
示例
A.返回表达式的起始位置
以下示例返回字符序列 bicycle 在 Document 表的 DocumentSummary 列中的起始位置。打印
USE AdventureWorks2012; GO DECLARE @document varchar(64); SELECT @document = 'Reflectors are vital safety' + ' components of your bicycle.'; SELECT CHARINDEX('bicycle', @document); GO
下面是结果集:
打印
----------- 48
B.从特定位置中搜索
以下示例使用可选的 start_location 参数从 DocumentSummary 列的第五个字符开始查找 vital。打印
USE AdventureWorks2012; GO DECLARE @document varchar(64); SELECT @document = 'Reflectors are vital safety' + ' components of your bicycle.'; SELECT CHARINDEX('vital', @document, 5); GO
下面是结果集:
打印
----------- 16 (1 row(s) affected)
C.搜索不存在的表达式
以下示例显示在 expressionToSearch 中找不到 expressionToFind 时的结果集。打印
USE AdventureWorks2012; GO DECLARE @document varchar(64); SELECT @document = 'Reflectors are vital safety' + ' components of your bicycle.'; SELECT CHARINDEX('bike', @document); GO
下面是结果集:
-----------
0
(1 row(s) affected)
D.执行区分大小写的搜索
以下示例在 'Das ist ein Test' 中执行区分大小写的字符串 'TEST' 搜索。打印
USE tempdb; GO --perform a case sensitive search SELECT CHARINDEX ( 'TEST', 'Das ist ein Test' COLLATE Latin1_General_CS_AS);
下面是结果集:
-----------
0
以下示例在 'Das ist ein Test' 中执行区分大小写的字符串 'Test' 搜索。
打印
USE tempdb; GO SELECT CHARINDEX ( 'Test', 'Das ist ein Test' COLLATE Latin1_General_CS_AS);
下面是结果集:
-----------
13
E.执行不区分大小写的搜索
以下示例在 'Das ist ein Test' 中执行不区分大小写的字符串 'TEST' 搜索。打印
USE tempdb; GO SELECT CHARINDEX ( 'TEST', 'Das ist ein Test' COLLATE Latin1_General_CI_AS) GO
下面是结果集:
-----------
13
相关文章推荐
- [SQL]sql语句中charindex的用法
- Sql中CHARINDEX用法
- Sql中CHARINDEX用法---判断数据库某个字段是否包含某个字符
- sql语句中charindex函数用法
- sql 中charindex 和 replace的用法
- sql 中charindex 和 replace的用法
- sql语句中charindex函数用法
- [SQL]sql语句中charindex的用法
- SQL中charindex的用法
- (转)sql语句中charindex的用法
- sql语句中charindex的用法 可用于截取字符串
- sql中 substring和charindex 的用法
- sql语句 charindex 的用法 比较 CHARINDEX 和 PATINDEX
- sql中like的用法,做删除操作时应该注意的问题
- sql中DATEDIFF用法
- Postgresql中SQL语句用法
- SQL中IN和EXISTS用法的区别
- SQL With As 用法
- SqlDataReader 用法
- 类似indexof 函数 的SQL中的Charindex 函数