函数:字符串函数

来源:互联网 发布:中国修正主义知乎 编辑:程序博客网 时间:2024/05/22 01:46

㈠字符串函数

SUBSTRING(expressionstartlength)

功能:返回字符表达式、二进制表达式、文本表达式或图像表达式的一部分。

expression:字符或二进制字符串(常量或字段)

start:一个整数,指定子字符串的开始位置。

length:一个整数,指定返回字符串的长度。

 

示例:

declare @s varchar(50)

set @s = '123456789'

--取得从字符串@s第二位开始长度为5的字符串

select substring(@s,2,5) as 子字符串

 

结果:

       子字符串

-----------------------

       '23456'

 

STUFF(character_expression1startlengthcharacter_expression2)

功能:将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字,然后将第二个字符串插入第一个字符串的开始位置。

Character_expression1:一个要被插入字符串的字符串表达式。可以是常量、变量,也可以是字符列或二进制数据列。

start:一个整数,指定删除和插入的开始位置。

length:一个整数,指定要删除的字符数。

 

示例:

declare @s varchar(50)

set @s = '123456789'

--'23456'删除后插入'哈哈'

select stuff(@s,2,5,'哈哈') as 代替字符串

 

结果:

       代替字符串

-----------------------

       '1哈哈789'

 

CHARINDEX(expression1expression2 [start_location])

功能:在expression2中搜索expression1并返回其起始位置,搜索的开始位置为start_location

expression1:要查找的字符表达式。最大长度为8000字符。

expression2:要搜索的字符表达式。

start_location:可选项,表示搜索的起始位置。

 

示例:

declare @s varchar(50)

set @s = '1234567859'

--从第位开始搜索'5',并返回其在字符串中所在位置

select charindex('5',@s,8) as 位置

-

结果:

       位置

-----------------------

       9

 

STR(float_expression[length[decimal]])

功能:返回右数字数据转换来的字符数据(char)。

float_expression:带小数点的近似数字(float)数据类型表达式。

length:可选项,总长度。包括小数点、符号、数字以及空格。默认为10

decimal:可选项,小数点后的位数。Decimal必须小于或等于16.

 

示例:

declare @f float

set @f = -123.45

--将该数字转换为总长度为,小数点为位的字符

select str(@f,6,1) 字符数据

 

结果:

       字符数据

-----------------------

       '-123.5'

 

PATINDEX(‘%patten%’expression)

功能:返回指定表达式中某模式第一次出现的起始位置。如果没有找到该模式则返回0

Patten:一个文字字符串。可以使用通配符,但patten之前和之后必须要有%

expression:一个表达式,通常为要在其中搜索模式的列。

 

示例:

declare @s nchar(50)

set @s = 'abcd21cdf'

--返回字符串中第一个数字的开始位置

select patindex('%[1-9]%',@s) 数字开始位置

 

结果:

       数字开始位置

-----------------------

       5

 

REPLACE(string_expression1string_expression2string_expression13)

功能:用另一个字符串值替换出现的所有指定字符串值。

string_expression1:要搜索的字符串表达式。

string_expression2:要查找的字符串表达式。

string_expression3:替换字符串。

 

示例:

declare @s nchar(50)

set @s = 'abcb'

--返回替换后的字符串

select replace(@s,'b','*') 替换后的字符串

 

结果:

       替换后的字符串

-----------------------

       'a*c*'   

 

LEN(string_expression)

功能:返回指定字符串表达式的字符数,其中不包含尾空格。

string_expression:要计算的字符串。

 

示例:

declare @s nchar(50)

set @s = 'abcb '

--返回字符串长度

select len(@s) 字符串长度

 

结果:

       字符串长度

-----------------------

           4      

 

 

QUOTENAME(character_string [,quote_character])

功能:返回带有分隔符的UNICODE字符串。

string_expression:要计算的字符串。

quote_character:用作分隔符的字符串。可以为单引号等,默认为方括号。

 

declare @s varchar(50)

set @s = 'abcb'

--返回有分隔符的字符串

select quotename(@s,'''') 分隔符的字符串

 

结果:

       分隔符的字符串

-----------------------

           'abcb'                                         

 

REPLICATE(string_expression ,integer_expression)

功能:以指定的次数重复字符串。

string_expression:要重复的字符串。

integer_expression:要重复的次数。

 

示例:

declare @s varchar(50)

set @s = 'abcb-'

--返回有分隔符的字符串

select replicate(@s,2) 重复后的值

结果:

       重复后的值

-----------------------

           'abcb-abcb-'      

 

SPACE(integer_expression)

功能:返回由重复的空格组成的字符串。

integer_expression:空格数。

 

示例:

declare @s varchar(50)

set @s = 'abcd'

 

select '1'+ space(2)+@s 加空格后

 

结果:

       加空格后

-----------------------

       '1  abcd'

 

REVERSE(character_expression)

功能:返回字符串表达式的逆向表达式。

Character_expression:一个字符数据表达式。

 

示例:

declare @s varchar(50)

set @s = 'abcd'

 

select  reverse(@s) 逆向字符串

 

结果:

       逆向字符串

-----------------------

       'dcba'  

 

SOUNDEX (character_expression)

功能:返回一个由四个字符组成的代码(SOUNDEX),用于比较字符发音的相似度。

character_expression:一个字符数据表达式。

 

示例:

declare @s1 varchar(50)

set @s1 = 'ad'

 

declare @s2 varchar(50)

set @s2 = 'ac'

 

select  soundex(@s1) soundex1,soundex(@s2) soundex2

 

结果:

soundex1 soundex2

-----------------------

A000   A200

 

DIFFERENCE (character_expression1character_expression2)

功能:返回一个整数值,指示两个字符串之间的soundex值之间的差异。

         返回的值从04不等:0 表示几乎不同或完全不同,4 表示几乎相同或完全相同。

character_expression1:第一个字符数据表达式。

character_expression2:第二个字符数据表达式。

 

示例:

declare @s1 varchar(50)

set @s1 = 'ad'

 

declare @s2 varchar(50)

set @s2 = 'ac'

 

select  difference(@s1,@s2) 差异

 

结果:

    差异

-----------------------

    3

 

 

ASCII (character_expression)

功能:返回指定的字符表达式中最左侧的字符的ASCII码。

character_expression:一个字符数据表达式。

 

示例:

declare @s varchar(50)

set @s = 'a'

 

select ascii(@s) ascii

 

结果:

    ascii

-----------------------

    97

 

UNICODE (character_expression)

功能:按照UNICODE标准的定义,返回指定的字符表达式中最左侧的字符的UNICODE下的ASCII码。

character_expression:一个字符数据表达式。

 

示例:

declare @s nvarchar(50)

set @s = N'Åb'

 

select UNICODE(@s) UNICODE

 

结果:

    UNICODE

-----------------------

    97

 

CHAR(integer_expression)/ NCHAR(integer_expression)

功能:INT ASCII 代码转换为字符/根据 Unicode 标准的定义,返回具有指定的整数代码的 Unicode 字符。

integer_expression:介于 0 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。/介于 0 65535 之间的正整数。如果指定了超出此范围的值,将返回 NULL

示例:

select nchar(97) ncharascil,char(97) charascil

结果:

ncharascil   charascil

-----------------------

a          a

LOWER(character_expression)/ UPPER(character_expression)          

功能:将大写/小写字符数据转换为小写/大些字符数据后返回字符表达式。

character_expression:字符串或二进制数据的表达式。

 

示例:

select lower('A') 转换成小写, upper('a') 转换成大写

 

结果:

转换成小写  转换成大写 

-----------------------

'a'        'A'

 

LEFT(character_expressiointeger_expression)/ RIGHT(character_expressiointeger_expression) 

功能:返回字符串中从左边/右边开始指定个数的字符。

character_expression:一个字符数据表达式。

integer_expression:正整数,指定 character_expression 将返回的字符数。

 

示例:

declare @s nvarchar(50)

set @s = 'abcd'

 

select left(@s,2) myLeft,right(@s,2) myRight

 

结果:

myLeft myRight

-----------------------

'ab'       'cd'

 

LTRIM(character_expression)/RTRIM(character_expression)           

功能:返回删除了前导/后导空格之后的字符表达式。

character_expression:字符串或二进制数据的表达式。

 

示例:

declare @s nvarchar(50)

set @s = ' abcd '

 

select ltrim(@s) myLeft,rtrim(@s) myRight

结果:

 

myLeft myRight

-----------------------

'abcd '       ' abcd'

 

原创粉丝点击