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 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);
                 
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 ltrim('    123456')    --输出123456

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 reverse('123456789')    --输出 987654321 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值