(点击上方蓝字,快速关注我们)
字符串函数用于对字符和二进制字符进行各种操作
1.ASCII()函数
ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值。参数character_expression必须是一个char或varchar类型的字符串表达式。
select
ASCII(
's'
),ASCII(
'sql'
),ASCII(
'1'
);
执行结果如图:
字符’s'的ASCII值为115,所以第一行和第二行返回结果相同,对于第三条语句中的纯数字的字符串,可以不用单引号括起来。
2.CHAR()函数
CHAR(integer_expression)函数将整数类型的ASCII值转换为对应的字符,integer_expression是一个介于0~255之间的整数。如果该整数表达式不在此范围内,将返回null值。
select
CHAR
(115),
CHAR
(49);
可以看到,这里返回的值与ASCII函数的返回值正好相反.
3.LEFT()函数
LEFT(character_expression,integer_expression)函数返回字符串左边开始指定个数的字符串、字符或者二进制数据表达式。character_expression是字符串表达式,可以是常量,变量或字段。integer_expression为整数,指定character_expression将返回的字符数。
select
LEFT
(
'football'
,4);
函数返回字符串“football”左边开始的长度为4的子字符串,结果为“foot”,可见索引从1开始。
4.RIGHT()函数
与LEFT()函数相反,RIGHT(character_expression,integer_expression)返回字符串character_expression最右边integer_expression个字符。
select
RIGHT
(
'football'
,4);
函数返回字符窜”football”右边开始的长度为4的字符串,结果为“ball”,索引也是从1开始的。
5.LTRIM()函数
LTRIM(character_expression)用于除去字符串左边多余的空格,字符数据表达式character_expression是一个字符串表达式,可以是常量,变量,也可以是字符字段或者二进制数据列。
select
'('
' book '
')'
,
'('
LTRIM(
' book '
)
')'
;
对比两个值,LTRIM只删除字符串左边的空格,右边的空格不会被删除.
6.RTRIM()函数
RTRIM(character_expression)用于除去字符串右边多余的空格,字符数据表达式character_expression是一个字符串表达式,可以是常量,变量,也可以是字符字段或者二进制数据列。
select
'('
' book '
')'
,
'('
RTRIM(
' book '
)
')'
;
对比两个值,LTRIM只删除字符串右边的空格,左边的空格不会被删除.
7.STR()函数
STR(float_expression [ , length [ , decimal ] ])函数用于将数值数据转换为字符数据。
float_expression是一个带有小数点的近似数字(float)数据类型的表达式。length表示总长度。它包括小数点、符号、数字以及空格,默认值为10。decimal指定小数点后的位数,decimal必须小于或等于16。如果decimal大于16,则会截断结果,使其保持小数点后有16为。
select
STR(3141.59,6,1),STR(123.45,2,2)
第一条语句6个数字和一个小数点组成的数值3141.59转换为长度为6的字符串,数字的小数部分舍入为1个小数位,第二条语句中的表达式超出指定的总长度时,返回的字符串为指定长度的两个**。
8.字符串逆序的函数REVERSE()
REVERSE(s)将字符串s反转,返回的字符串的顺序和s的顺序相反。
select
REVERSE(
'abc'
);
由结果可以看到,字符串“abc”经过REVERSE函数处理后,所有的字符串顺序被反转,结果为“cba”;
9.计算字符串的长度函数LEN(str)
返回字符表达式中的字符数。如果字符串中包含前导空格和尾随空格,则函数将它们包含在内。LEN对相同的单字节和双字节字符串返回相同的值。
select
LEN(
'no'
),LEN(
'日期'
),LEN(12345);
可以看到,LEN函数在对待英文字符和汉字字符时,返回的字符串长度是相同的,一个汉字也算作一个字符。LEN函数在处理纯数字也将其当作字符串,但是纯数字可以不实用引号.
10.匹配字符串开始位置的函数CHARINDEX(str1,str,[start])
CHARINDEX(str1,str,[start])函数返回子字符串str1在字符串str中的开始位置,start为搜索的开始位置,如果指定start参数,则从指定位置开始搜索;如果不指定start参数或者指定为0或者负值,则从字符串开始位置搜索。
select
CHARINDEX(
'a'
,
'banana'
),CHARINDEX(
'a'
,
'banana'
,4), CHARINDEX(
'na'
,
'banana'
, 4);
CHARINDEX(‘a’,'banana’)返回字符串’banana’中子字符串‘a’ 第一次出现的位置,结果为2;
CHARINDEX(‘a’,'banana’,4)返回字符串’banana’中从第4个位置开始子字符串‘a’的位置,结果为4;
CHARINDEX(‘na’,'banana’, 4)返回从第4个位置开始子字符串‘na’第一次出现的位置,结果为5
11.SUBSTRING()函数
SUBSTRING(value_expression,start_expression,length_expression)函数返回字符表达式,二进制表达式,文本表达式或图像表达式的一部分。
value_expression是character、binary、text、ntext或image表达式。
start_expression指定返回字符的起始位置的整数或表达式。如果start_expression小于0,或生成错误并终止语句。如果 start_expression大于值表达式的字符数,将返回一个零长度的表达式。
length_expression是正整数或指定要返回的value_expression的字符数表达式。如果length_expression是负数,会生成错误并终止语句,如果start_expression与length_expression的总和大于value_expression中的字符数,则返回整个值表达式。
select SUBSTRING (‘breakfast’1,5), SUBSTRING(‘breakfast’ , LEN(‘breakfast’)/2, LEN(‘breakfast’));
第一条语句返回从第一个位置开始长度为5的字符串,结果为”break”,第二条语句返回整个字符串的后半段字符串,结果为”akfast”
12.LOWER()
LOWER(character_expression)将大写字符数据转换为小写字符数据后返回字符表达式。character_expression是指定要进行转换的字符串。
select
LOWER
(
'BEAUTIFUL'
),
LOWER
(
'Well'
);
由结果可以看到,经过LOWER()函数转换之后,大写字母都变成小写了,小写字母保持不变.
13.UPPER()函数
UPPER(character_expression)将小写字符数据转换为大写字符数据后返回字符表达式。character_expression指定要进行转换的字符串。
select
UPPER
(
'black'
),
UPPER
(
'Black'
);
由结果可以看到,经过UPPER函数转换后,小写字母都变成了大写,大写字母保持不变。
14.替换函数REPLACE(s,s1,s2)
REPLACE(s,s1,s2)使用字符串s2替代字符串s中的s1.
select
REPLACE
(
'xxx.sqlserver2012.com'
,
'x'
,
'w'
);
REPLACE(‘xxx.sqlserver2012.com’,'x’,'w’)将”xxx.sqlserver2012.com”字符串中的’x'替换为’w'字符,结果为”www.sqlserver2012.com”;
上面例子的整体代码:
--字符串函数
--1.ASCII()函数
select
ASCII(
's'
),ASCII(
'sql'
),ASCII(1);
--2.CHAR()函数
select
CHAR
(115),
CHAR
(49);
--3.LEFT()函数
select
LEFT
(
'football'
,4);
--4.RIGHT()函数
select
RIGHT
(
'football'
,4);
--5.LTRIM()函数
select
'('
' book '
')'
,
'('
LTRIM(
' book '
)
')'
;
--6.RTRIM()函数
select
'('
' book '
')'
,
'('
RTRIM(
' book '
)
')'
;
--7.STR()函数
select
STR(3141.59,6,1),STR(123.45,2,2);
--8.字符串逆序的函数REVERSE()
select
REVERSE(
'abc'
);
--9.计算字符串的长度函数LEN(str)
select
LEN(
'no'
),LEN(
'日期'
),LEN(12345);
--10.匹配字符串开始位置的函数CHARINDEX(str1,str,[start])
select
CHARINDEX(
'a'
,
'banana'
),CHARINDEX(
'a'
,
'banana'
,4),
CHARINDEX(
'na'
,
'banana'
, 4);
--11.SUBSTRING()函数
select
SUBSTRING
(
'breakfast'
,1,5),
SUBSTRING
(
'breakfast'
,LEN(
'breakfast'
)/2,LEN(
'breakfast'
));
--12.LOWER()
select
LOWER
(
'BEAUTIFUL'
),
LOWER
(
'Well'
);
--13.UPPER()函数
select
UPPER
(
'black'
),
UPPER
(
'Black'
);
--14.替换函数REPLACE(s,s1,s2)
select
REPLACE
(
'xxx.sqlserver2012.com'
,
'x'
,
'w'
);
出处:阿赫瓦里
链接:http://www.cnblogs.com/selene/p/4461621.html
『数据库开发』分享 数据库 相关技术文章、工具资源、精选课程、热点资讯,欢迎关注。
微信号:DBDevs
(长按上图,弹出「识别二维码」后可快速关注)
联系客服