现在的位置: 首页 > 综合 > 正文

SqlServer中SubString与CharIndex函数的使用

2012年01月19日 ⁄ 综合 ⁄ 共 1181字 ⁄ 字号 评论关闭

一、CHARINDEX

1:CHARINDEX语法:

    CHARINDEX ( expression1 ,expression2 [ , start_location ] )

2:参数

    expression1

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

  expression2

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

  start_location

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

3:返回类型

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

4:备注

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

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

返回的开始位置从 1 开始,而非从 0 开始。

4:例子

select charindex('A','BADF',1)  :2

select charindex('A','BADF',0)  :2

select charindex('A','BADF',2)  :2

select charindex('A','BADF',3)  :0

select charindex('G','BADF',3)  :0

 

二、SUBSTRING

1、语法

SUBSTRING ( expression ,start , length )

2、参数

expression

是字符串、二进制字符串、文本、图像、列或包含列的表达式。不要使用包含聚合函数的表达式。

start

指定子字符串开始位置的整数。start 可以为 bigint 类型。

length

一个正整数,指定要返回的 expression 的字符数或字节数。如果 length 为负,则会返回错误。length 可以是 bigint 类型。

3、备注

必须以字符数指定使用 ntextcharvarchar 数据类型的偏移量(startlength)。必须以字节数指定使用 textimagebinaryvarbinary 等数据类型的偏移量。

4、例子:

select substring('GXS',-1,3) :G

select substring('GXS',-1,2) :NULL

select substring('GXS',0,1)  :NULL

select substring('GXS',1,1)  :G

select substring('GXS',1,2)  :GX

抱歉!评论已关闭.