`

SQL CHARINDEX (Transact-SQL)

阅读更多
返回字符串中指定表达式的开始位置。

Transact-SQL 语法约定

语法

CHARINDEX ( expression1 ,expression2 [ , start_location ] )


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

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

如果在 expression2 内找不到 expression1,则 CHARINDEX 返回 0。

select charindex('18',',22,18,')

返回5.

CHARINDEX 将根据输入的排序规则执行比较操作。若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入值。

参数
expression1

一个表达式,其中包含要查找的字符的序列。expression1 是一个字符串数据类别的表达式。

expression2

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

start_location

开始在 expression2 中搜索 expression1 时的字符位置。如果 start_location 未被指定、是一个负数或零,则将从 expression2 的开头开始搜索。start_location 可以是 bigint 类型。

返回类型
如果 expression2 的数据类型为 varchar(max)、nvarchar(max) 或 varbinary(max),则为 bigint,否则为 int。

示例
以下代码示例将返回字符序列 bicycle 在 Document 表的 DocumentSummary 列中开始的位置。

复制代码
USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO


下面是结果集:

复制代码
-----------
48         


以下示例将使用可选的 start_location 参数从 DocumentSummary 列的第五个字符开始查找 bicycle。

复制代码
USE AdventureWorks;
GO
SELECT CHARINDEX('bicycle', DocumentSummary, 5)
FROM Production.Document
WHERE DocumentID = 3;
GO


下面是结果集:

复制代码
-----------
48         

(1 row(s) affected)


以下示例显示了在 expression1 内找不到 expression2 时的结果集。

复制代码
USE AdventureWorks;
GO
SELECT CHARINDEX('bike', DocumentSummary)
FROM Production.Document
WHERE DocumentID =6;
GO


下面是结果集:

复制代码
-----------
0         

(1 row(s) affected)


以下示例使用 COLLATE 函数。

复制代码
USE tempdb;
GO
SELECT CHARINDEX ( 'Test', 'Das ist ein Test'  COLLATE Latin1_General_BIN);
GO

分享到:
评论

相关推荐

    SQL Server CHARINDEX和PATINDEX详解

    SQL Server CHARINDEX和PATINDEX详解

    sqlserver中常用函数

    sqlserver中常用函数----字符串函数---- ASCII() --函数返回字符表达式最左端字符的ASCII 码值 CHAR() --函数用于将ASCII 码转换为字符 --如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值 ...

    SQL Server 2014基础入门视频教程 (40集,含课件)

    30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014 STUFF函数.mp4 32.SQL Server 2014 SUBTRING函数.mp4 33..SQL Server 2014 LEFT()和RIGHT函数.mp4 34.SQL Server 2014 LTRIM()和RTRIM()函数.mp4 35...

    SQL内置函数说明

    希望对大家有所帮助,有点怀旧哦 :) 好东西,就是要跟你分享.谢谢支持. 地基的深度取决你将来的层次,地基的广度决定你将来的空间.

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程.txt

    30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014 STUFF函数.mp4 32.SQL Server 2014 SUBTRING函数.mp4 33..SQL Server 2014 LEFT()和RIGHT函数.mp4 34.SQL Server 2014 LTRIM()和RTRIM()函数.mp4 35...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程

    30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014 STUFF函数.mp4 32.SQL Server 2014 SUBTRING函数.mp4 33..SQL Server 2014 LEFT()和RIGHT函数.mp4 34.SQL Server 2014 LTRIM()和RTRIM()函数.mp4 35...

    charindex instruction

    CHARINDEX 返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expression1 一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符...

    IP纯真sql 数据库脚本与ip转化为十进制数字函数便于高效查询

    IP纯真sql 数据库脚本与ip转化为十进制数字函数便于高效查询 数据库IP数据需要下载。 ALTER FUNCTION [dbo].[X16ToDe] ( @Old_IP nvarchar(15) ) RETURNS numeric AS BEGIN DECLARE @CharIndex INT, @CurrPoint ...

    SQL中Charindex和Oracle中对应的函数Instr对比

    sql :charindex(‘字符串’,字段)>0 charindex(‘administrator’,MUserID)>0 oracle:instr(字段,’字符串’,1,1) >0 instr(MUserID,’administrator’,1,1)>0 在项目中用到了Oracle中 Instr 这个函数,顺便仔细的...

    sql server 查询管理软件

    查询和维护sql数据库 标记备注功能 查看所有存在相同字段的表功能 方便了解业务 可以添加表功能等信息

    SQLserver中字符串查找功能patindex和charindex的区别

    包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的开始位置。PATINDEX 可使用通配符,而 CHARINDEX 不可以。 这两个函数都带有2个参数: 1 希望获取其位置的模式。使用 ...

    sqlserver自定义函数

    set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'') end return end select * from dbo.f_splitstr('1,2,3,4',',') --全角和半角转换函数 Create FUNCTION f_Convert( @str ...

    sqlserver 中charindex/patindex/like 的比较

    数据库:Sql Server 2008 2。测试表:15000记录,char类型主键,无其他索引 3。测试字段:ntext 类型,最大数据长度12000 二、测试语句: 1。select * from ProductTemp where ProductDesc like ‘2.168.70.236%’ 2...

    Sql Server时间函数

    Sql Server时间函数实用大全,欢迎下载!

    SQL实现金额大写转化函数

    select @strleft=left(@tt,charindex('.',@tt)-1) --小数点左边 select @strright=right(@tt,2) --小数点右边 --************************************************************** --记录小数点左边多少位 declare @...

    SQL_Sever数据库常用语句大全.zip

    CharIndex获取字符在字符串中出现的位置 Len函数获取字符串字节长度(中英数都是1字节) Right右截取字符串函数 SubString中间截取字符串函数 Left左截取字符串函数 stuff指定位置插入字符串、删掉字符串函数 查看...

    sql2005全文检索.doc

    SQL Server 2005全文检索技术在网站上的应用实录 http://tech.ddvip.com 2008年01月21日 社区交流 Excel服务器-用Excel做管理系统 关键字: DataGuard checkpoint 动态查询 synonyms 卸载SQL 2005 SQL Server群集 ...

    SQL Server字符串处理函数大全

    select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据、字符串和表达式执 行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 数据类型以及可以隐式转换为CHAR 或...

Global site tag (gtag.js) - Google Analytics