加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver 字符串相关函数

发布时间:2020-12-12 13:52:49 所属栏目:MsSql教程 来源:网络整理
导读:1、left函数 用于截取从左边第一个字符开始,指定长度的字符串。其执行效果等于substring(expression,1,length)。 语法:left(character_expression,integer_expression) 示例: select left('123456',3) --输出 123 2. right 函数 用于返回字符串最右边开始

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',3) as 'Database Name',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',2) --它第一个字符是从1开始的

 
10、ltrim 函数 

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


语法结构:

ltrim(character_expression)
character_expression为字符或二进制数据表达式,可以是常量、变量或数据列。
? ? ? ?
返回值:
varchar或nvarchar,变长字符串。
? ? ? ?
示例:
 
select substring('hello',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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读