sqlserver 字符串相关函数

1、left函数

用于截取从左边第一个字符开始,指定长度的字符串。其执行效果等于substring(expression,1,length)。

语法:left(character_expression,integer_expression)


示例:
select left('123456',3)    --输出 123

2. right 函数

用于返回字符串最右边开始的指定数目的字符

语法:right(string, length)


示例:

select right('abcdefgh' ,3) -- 返回 fgh

3. replicate 函数

以指定的次数重复字符表达式。   

语法 : replicate(   character_expression   ,   integer_expression   )  


示例:

select replicate('0' ,5) -- 返回 00000
select replicate('ab' ,2) -- 返回 abab
select right(replicate('0' ,8) + '2314' ,8)  -- 保持8位数字,位数不够左侧补0                                               

4. patindex 函数

返回指定表达式中第一次出现的模式的起始位置,如果找不到模式,则返回所有有效的文本和字符数据类型的零。

语法 :  patindex( '%pattern%' , expression ) 

 

参数:
pattern 
一个文字字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。pattern 是字符串数据类型类别的表达式。

expression 
一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。

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

返回0-则为纯数字(支持正负数,小数点)


示例:

 
select patindex('%[^0-9|.|-|+]%' ,'2.2')--返回0                         

--返回0-则为纯整数
select patindex('%[^0-9]%' ,'2.2')--返回

select patindex('%from%' ,'select * from test')

-- 搜索开头的字符串              
select patindex('select%' ,'select * from test')

-- 搜索末尾的select              
select patindex('%test' ,'select * from test')

 

5. charindex 函数

在表达式中搜索另一个表达式,如果找到,则返回其起始位置。

语法:charindex( expressionToFind , expressionToSearch [ , start_location ] )   


参数
expressionToFind
是包含要找到的序列的字符表达式。expressionToFind被限制为8000个字符。

expressionToSearch
是要搜索的字符表达式。

start_location
是开始搜索的整数或bigint表达式。如果start_location没有被指定,是一个负数,或者是0,那么搜索从expressionToSearch开始。

返回类型

bigint if expressionToSearch是varchar(max),nvarchar(max)或varbinary(max)数据类型; 否则,int。如果没有搜索到,则返回0


示例:

select charindex('from' ,'select * from test')

-- 从一个特定的位置搜索
select charindex('from' ,'select * from test' ,5)

-- 执行区分大小写的搜索
select charindex('Test' ,'This is a Test' collate Latin1_General_CS_AS);  

-- 执行不区分大小写的搜索
select charindex('TEST' ,'This is a Test' collate Latin1_General_CI_AS);

6. parsename函数

用于linked servers中的object name, owner name, database name, and server name. 用于分隔的字符串最多含有三个 '.' , 及4部分   

         

示例                

select parsename('server1.dbname1.dbo.table' ,1) as 'Object Name'
      ,parsename('server1.dbname1.dbo.table' ,2) as 'Schema Name'
      ,parsename('server1.dbname1.dbo.table' ,3) as 'Database Name'
      ,parsename('server1.dbname1.dbo.table' ,4) as 'Server Name'
       
-- Object Name   Schema Name  Database Name    Server name
----------------------------------------------------------
-- table          dbo          dbname1        server1
                   
7、ASCII 函数
       
ASCII码是对字符的标准编码。要获取字符的ASCII码就可以通过调用ASCII函数来实现。
       
语法结构:
       
ASCII(espression)
这里的expression是一个返回char或varchar数据类型的表达式,ASCII函数仅对表达式最左侧的字符返回ASCII码值。
       
返回值:int数据类型。
       
示例:       
select ascii('a')    --输出 97
select ascii('abc') --输出 97
       
8、Char 函数

用于获取 ASCII 码对应的字符       


语法结构:

char(integer_expression)


返回值类型:char型字符
       
示例:
select char(102)    -- 输出f
select 'aaa' + CHAR(10) + 'bbb' -- 换行符
              
-- 替换回车换行符
select replace(replace('select *      
from sys.objects' ,char(10) ,'') ,char(13) ,'') -- select * 		 from sys.objects
       
9、substring 函数
substring函数可以对字符串进行字串的截取操作。
       
语法结构:

substring( expression,start,length)


参数说明:
       
expression:是字符串、二进制字符串、文本、图像、列或包含列的表达式,但不要使用包含聚合函数的表达式。
       
start:指定子字符串开始位置的整数,start可以使bigint类型。
       

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


返回值:
       
如果expression是受支持的字符数据类型,则返回字符数据。       

如果expression是受支持的binary数据类型,则返回二进制数据。

       

示例:      
 
select substring('hello' ,1 ,2) --它第一个字符是从1开始的

 
10、ltrim 函数 

如果字符串的字一个字符为空格,LTRIM函数用于清除连续的左边空格。


语法结构:

ltrim(character_expression)
character_expression为字符或二进制数据表达式,可以是常量、变量或数据列。
       
返回值:
varchar或nvarchar,变长字符串。
       
示例:
 
select substring('hello' ,1 ,2) --它第一个字符是从1开始的

 
11、rtrim函数 

rtrim函数用于清空右边连续的空格。
       
语法结构:      rtrim(character_expression)

character_expression为字符或二进制数据表达式,可以是常量、变量或数据列。

       
返回值:
varchar或nvarchar,变长字符串。
       
示例:       
select rtrim('123456   ')    --输出123456

12、lower 函数
lower函数将字符串全部转换为小写字符后返回。
       
语法结构:lower(character_expression)


返回值:

varchar或nvarchar,变长字符串
       
示例:       
 
select lower('ABCDEFG')    --输出 abcdefg
                                            

13、upper 函数

upper函数用于将字符串全部转换为大写字符后返回。
       
语法结构:upper(character_expression)
character_expression为字符或二进制表达式,可以是常量,变量或数据列。
       
返回值:
varchar或nvarchar,变长字符串。
       
示例:
select upper('abcdefg')    --输出 ABCDEFG
              

14、reverse 函数

reverse函数用于将字符串内容反序后返回。
       
语法结构:reverse(character_expression)
character_expression:为二进制或二进制数据表达式,可以是常量、变量或数据列。
       
返回值:
varchar或nvarchar,变长字符串
       
示例:   
select reverse('123456789')    --输出 987654321 

15、len 函数

len函数用于获取字符串的长度(字符数),但不包括右边的空格。左边的空格和右边的空格计算在内。
       

语法结构:len( string_expression )


参数说明:

string_expression:要计算长度的字符串。
       
返回值:expression数据类型为varchar(max)、nvarchar(max)或varbinary(max),则为bigint。否则为int。
       
示例:
select len('abcd一二三') -- 输出 7 

16、datalength 函数

datalength函数用于获取字符串的字节数,而不是字符数。该函数不仅适合字符串数据,还适合文本(text、ntext)、二进制数据(varbinary、binary)和图像(image)等任意类型的数据。
       

语法结构:datalength(expression)


返回值:
       如果expression数据类型为varchar(max)、nvarchar(max)或varbinary(max)数据类型,则返回bigint;否则返回int。
       
示例:       

select datalength('abcdefg') --输出7
select datalength('abcd一二三') -- 输出 10

17、replace 函数

用另一个字符串值替换出现的所有指定字符串值。
       
语法如下:replace( string_expression1 , string_expression2 , string_expression3 )


参数

string_expression1:要搜索的字符串表达式。string_expression1 可以是字符或二进制数据类型。
string_expression2:要查找的子字符串。string_expression2 可以是字符或二进制数据类型。
string_expression3:替换字符串。string_expression3 可以是字符或二进制数据类型。

       

示例

select replace('abcde' ,'abc' ,'123') --123de
       

18、stuff 函数

stuff函数用于在指定的字符串中删除指定长度的字符,并在起点处插入另外一组字符。
       
语法结构:stuff(source_character_expression,start,length,destination_character_expression)


参数说明:

source_character_expression:源字符串。可以是常量、变量,也可以使字符列或二进制数据列。
start:一个整数,指定删除和插入的开始位置。如果start或length为负,则返回空字符串。如果start比第一个character_expression长,则返回空字符串。start可以是bingint类型。
length:一个赠书,指定要删除的字符个数。如果length比第一个charter_expression长,则最多删除到最后一个character_expression中最后一个字符。length可以是bigint类型。
destination_character_expression:目的字符串。可以是常量、变量,也可以使字符列或二进制数据列。将在源字符串中执行插入。
       
示例:
       
select stuff('1234567' ,5 ,2 ,'xyz')  --输出1234xyz7
相关文章
相关标签/搜索