例说SQL SERVER 2008内置函数之字符串函数
1 LTRIM与RTRIM
>>SQL查询实例
SELECT LTRIM(' I am 20 years old. ') AS Result;SELECT RTRIM(' I am 20 years old. ') AS Result;
>>查询执行结果
>>函数说明
功能:
LTRIM函数返回删除了前导空格之后的字符表达式;RTRIM函数返回删除了尾随空格之后的字符表达式。
入参与返回值:
LTRIM与RTRIM函数的输入参数(实例中的' I am 20 years old. ')都是字符或者二进制数据的表达式,可以是变量,常量或者列。LTRIM与RTRIM函数的返回值都是varchar 或nvarchar类型的数据。
2 ASCII与CHAR
>>SQL查询实例
SELECT ASCII('A') AS Result;SELECT CHAR(65) AS Result;
>>查询执行结果
>>函数说明
功能:
ASCII函数返回字符的ASCII代码值;CHAR函数将 ASCII 代码值转换为字符。
入参与返回值:
ASCII函数的入参为char类型表达式(实例中的'A'),返回值为int型的ASCII代码;ASCII函数的入参也可以是varchar类型的表达式,此时返回表达式中最左侧的字符的 ASCII 代码值。CHAR函数的入参(实例中的65)为0-255之间的整数,返回值为char(1)类型数据;当入参不在0-255之间时返回NULL。
3 UNICODE与NCHAR
>>SQL查询实例
SELECT UNICODE('α') AS Result;SELECT NCHAR(945) AS Result;
>>查询执行结果
>>函数说明
功能:
UNICODE、NCHAR函数分别是ASCII()、CHAR()函数的Unicode等价函数。
入参及返回值:
UNICODE函数接收nchar 或 nvarchar 表达式(实例中的'α'),返回int型数据;CHAR()函数接收int型数据(实例中的945),返回nchar 或 nvarchar 类型数据。
4 SPACE
>>SQL查询实例
SELECT 'HI,'+SPACE(5)+'YL!' AS Result;
>>查询执行结果
>>函数说明
功能:
返回由多个空格组成的字符串。
入参与返回值:
入参(实例中的5)为正整数,指示空格的个数;返回值为varchar类型数据。
注意:
当传入参数为负数时,返回NULL;当传入参数为空字符(串)或者含若干空格的字符串时,返回值是空串;当传入非空字符(串)时函数无法执行。
SELECT 'HI,'+SPACE(-1)+'YL!' AS Result;
SELECT 'HI,'+SPACE('')+'YL!' AS Result;
SELECT 'HI,'+SPACE(' ')+'YL!' AS Result;
5 CHARINDEX与PATINDEX
>>SQL查询实例
SELECT CHARINDEX('AB','This is AB,That is also AB.') AS Result;SELECT CHARINDEX('AB','This is AB,That is also AB.',10) AS Result;SELECT PATINDEX('%A%','This is AB,That is also AB.') AS Result;
>>查询执行结果
>>函数说明
功能:
CHARINDEX函数在一个表达式str1中搜索另一个表达式str2并返回其起始位置;PATINDEX函数与CHARINDEX函数功能类似,也是在一个表达式中去搜索另一个表达式并返回其起始位置,只是增加了对通配符%的支持,及要查找的表达式必须是“%pattern%”的形式(这里的%不能省略)。
入参及返回值:
CHARINDEX函数含有3个入参; 的第一个入参为要查找的表达式str2(实例中的'AB');第二个入参为被搜索的表达式str1(实例中的'This is AB,That is also AB.');第三个入参为搜索的起始位置(实例中的10),也可以不指定,不指定时从头开始查找。 PATINDEX函数只含有两个参数,其意义与CHARINDEX的前两个参数的意义相同;两者的返回值均为表达式b的起始位置,为int型数据。
6 QUOTENAME
>>SQL查询实例
SELECT QUOTENAME('abcdef') AS Result;SELECT QUOTENAME('abcdef','"') AS Result;SELECT QUOTENAME('abcdef','''') AS Result;
>>查询执行结果
>>函数说明
功能:
QUOTENAME函数在字符串的前后加上指定的分隔符号(未指定时就加上默认的方括号[])。
入参及返回值:
QUOTENAME函数的第一个参数为Unicode字符组成的字符串;第二个参数为用作分隔符的单字符字符串,可以是单引号 (')、方括号([]) 或者英文双引号 (")。返回值为nvarchar(258)类型数据。
7 STR
>>SQL查询实例
SELECT STR(1234.567890) AS Result;SELECT STR(1234.567890,6,2) AS Result;
>>查询执行结果
>>函数说明
功能:
将数字数据转换成字符数据。
入参及返回值:
第一个参数为需要转换的数字数据(float)(实例中的1234.567890);第二个参数为转换成的字符数据的总长度(实例中的6),默认值为10;第三个参数为小数点右边的小数位数(实例中的2),必须小于等于16。 后两个参数可以不指定,第二个参数不指定时,取默认值取10,第三个参数不指定时,数字舍入为整数。 返回值为varchar类型数据。
8 SOUNDEX与DIFFERENCE
>>SQL查询实例
SELECT SOUNDEX('Red') AS Result;SELECT SOUNDEX('Red') AS Soundex1, SOUNDEX('Read') AS Soundex2, DIFFERENCE('Red','Read') AS DiffResult;
>>查询执行结果
>>函数说明
功能:
SOUNDEX函数返回一个由四个字符组成的代码用于评估两个字符串的相似性。(关于SOUNDEX代码大家自己去研究吧) 而DIFFERENCE函数返回一个整数值,指示两个字符表达式的 SOUNDEX 值之间的差异。
入参及返回值:
SOUNDEX函数接收字符数据组成的表达式(实例中的'Red'),可以是常量、变量或者列,返回varchar类型数据;DIFFERENCE函数接收两个字符数据组成的表达式(实例中的'Red'与'Read'),返回int型数据表示两者之间的差异程度,返回的值从 0 到 4 不等。 0 表示几乎不同或完全不同;4 表示几乎相同或完全相同。
9 REPLACE
>>SQL查询实例
SELECT REPLACE('abcdefghicde','cd','123') AS Result;
>>查询执行结果
>>函数说明
功能:
将字符串str1中的所有字符串str2替换成指定的字符串str3。
入参及返回值:
第一个参数为需要搜索的字符串str1(实例中的'abcdefghicde');第二个参数为要查找的字符串str2(实例中的'cd');第三个参数为替换字符串str3(实例中的'123');返回值为varchar或者nvarchar。 如果其中任何一个入参为varchar,则返回值为varchar;若有一个入参为nvarchar,则返回值为nvarchar;如果任何一个参数为NULL,则返回值为NULL。
10 STUFF
>>SQL查询实例
SELECT STUFF('abcdef', 3, 3, '123') AS Result;
>>查询执行结果
>>函数说明
功能:
先将字符串str1从指定开始位置(start)删除指定长度(length)的字符,再从指定的开始位置(start)插入字符串str2。
入参及返回值:
第一个参数为字符串str1(实例中的'abcdef'),可以是常量、变量,也可以是字符列或者二进制数据列;第二个参数为指定的开始位置start(实例中的3),删除和插入操作都从这个位置开始;第三个参数为需要删除的字节数length;第四个参数为待插入的字符串str2,可以是常量,变量,也可以是字符列或者二进制数据列。函数返回修改后的字符串。
注意:
当start或length<0,则返回空字符串;当start>str1的长度,则返回空字符串;当length>str1的长度,则最多删除到str1的最后一个字符。
11 SUBSTRING
>>SQL查询实例
SELECT SUBSTRING('abcdef' ,2 , 3 ) AS Result;
>>查询执行结果
>>函数说明
功能:
SUBSTRING可以从指定的字符str,二进制,文本或图像表达式中获取其中的一部分。(实例中以字符串为例)
入参及返回值:
第一个参数为指定的字符串str(实例中的'abcdef');第二个入参为返回字符的起始位置start(实例中的2);第三个参数为返回字符的长度length(实例中的3);这里的返回值为字符串。
注意:
当start<1时,起始位置则为字符串str的第一个字符,返回的字符数则是start+length-1的值与0这两者中的较大值。
SELECT SUBSTRING('abcdef' ,0 , 3 ) AS Result;
实例说明:此处start+length-1=0+3-1=2>0,则返回的字符数为2。
当start>字符串str的字符数,则返回一个长度为零的字符串。当start+length>字符串str的字符数,则返回起始位置为 start 的整个值表达式。
12 LEFT与RIGHT
>>SQL查询实例
SELECT LEFT('abcdefg',2) AS Result;SELECT RIGHT('abcdefg',2) AS Result;
>>查询执行结果
>>函数说明
功能:
两者分别返回指定字符串str中最左边或者最右边指定个数(length)的字符。
入参和返回值:
两者的第一个参数均为指定的字符串str(实例中的'abcdefg'),第二个参数均为指定的字符个数length(实例中的2),只是一个从左取一个从右取。返回值为varchar或者nvarchar类型的数据。
13 UPPER与LOWER
>>SQL查询实例
SELECT UPPER('abcdefg') AS Result;SELECT LOWER('ABCDEFG') AS Result;
>>查询执行结果
>>函数说明
功能:
两者分别将指定字符串str的小写字符转换成大写字符或者将大写字符转换成小写字符。
入参及返回值:
两者的入参均为字符数据表达式(实例中的abcdefg'和'ABCDEFG'),可以是常量,变量或者列。返回值为varchar或者nvarchar类型的数据。
14 REVERSE
>>SQL查询实例
SELECT REVERSE('abcdefg') AS Result;
>>查询执行结果
>>函数说明
功能:
将输入字符串str进行逆序操作后再返回。
入参及返回值:
入参为字符数据表达式,可以是常量,变量或者列。返回值为varchar或者nvarchar类型的数据。
15 LEN
>>SQL查询实例
SELECT LEN('ABCDEFG') AS Result;
>>查询执行结果
>>函数说明
功能:
返回输入字符串str的字节数,不包含尾随的空格。
入参和返回值:
入参为字符数据表达式,可以是常量,变量或者列。返回值为int或者bigint(当输入字符串str为varchar(max)、nvarchar(max) 或 varbinary(max)时)类型的值。
- 10-26Whitewidow SQL漏洞扫描工具演示
- 10-26SQL黑客注入防御与绕过的多种姿势
- 12-23SQLServer数据库操作总结(sql语法的使用)
- 12-21C#连接Sqlite
- 12-21ORACLE数据库学习之SQL性能优化详解
- 12-21解决SQLSERVER2008数据库日志文件占用硬盘空间问题
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复