SQL Server2008常用函数_1.字符串函数

SQL Server2008函数大全(完整版)
SQLServer常用内置函数解析

SQL2008 表达式:是常量、变量、列或函数等与运算符的任意组合。

1.字符串函数

函数 名称 参数 示例 说明

ascii(字符串表达式)

select ascii(‘abc’) 返回 97
返回字符串中最左侧的字符的ASCII 码。

Nchar(整数表达式)

返回具有给定的整数代码的UNICODE字符 select Nchar(65)–A

Unicode(字符串表达式)

返回表达第一个字符的UNICODE整数值 select Unicode(‘a’)–97

char(整数表达式)

select char(100) 返回 d
把ASCII 码转换为字符。介于0 和 255 之间的整数。
如果该整数表达式不在此范围内,将返回NULL 值。

charindex(字符串表达式 1, 字符串表达式2[,整数表达式])

select charindex(‘ab’,’BCabTabD’)返回 3
select charindex(‘ab’,’BCabTabD’,4)返回 6
在字符串2 中查找字符串 1,如果存在返回第一个匹配的位置,如果不存在返回0。
如果字符串 1 和字符串 2 中有一个是null 则返回 null。可以指定在字符串2 中查找的起始位置。

difference(字符串表达式 1,字符串表达式 2)

select difference(‘Green’,’Greene’)返回 4
以整数返回两个字符表达式的SOUNDEX值之差 字符串发音比较
返回一个0 到 4 的整数值,指示两个字符表达式的之间的相似程度。
0 表示几乎不同或完全不同,
4 表示几乎相同或完全相同。
注意相似并不代表相等

Soundex(字符串表达式)

select Soundex(‘abcd’)–A120
返回由四个字符表达的SOUNDEX代码

left(字符串表达式,整数表达式)

select left(‘abcdefg’,2) 返回 ab
返回字符串中从左边开始指定个数的字符。

right(字符串表达式,整数表达式)

select right(‘abcdefg’,2) 返回 fg
返回字符串中从右边开始指定个数的字符。

len(字符串表达式)

select len(‘abcdefg’) 返回 7
返回指定字符串表达式的字符数,其中不包含尾随空格。

lower(字符串表达式)

select lower(‘ABCDEF’)返回 abcdef
返回大写字符数据转换为小写的字符表达式。

upper(字符串表达式)

select upper(‘abcdef’)返回 ABCDEF
返回小写字符数据转换为大写的字符表达式。

ltrim(字符串表达式)

select ltrim(‘abc’)返回 abc
返回删除了前导空格之后的字符表达式。

rtrim(字符串表达式)

select rtrim(‘abc’)返回 abc
返回删除了尾随空格之后的字符表达式。

patindex(字符串表达式 1,字符串表达式 2)

select patindex(‘%ab%’,’123ab456’)返回4
select patindex(‘ab%’,’123ab456’)返回0
select patindex(‘___ab%’,’123ab456’)返回1
select patindex(‘__ab‘,’123ab456’)返回0
在字符串表达式1 中可以使用通配符,此字符串的第一个字符和最后一个字符通常是%。
%表示任意多个字符,_表示任意字符
返回字符串表达式2 中字符串表达式 1 所指定模式第一次出现的起始位置。没有找到返回0

reverse(字符串表达式)

select reverse(‘abcde’)返回 edcba
返回指定字符串反转后的新字符串

space(整数表达式)

select ‘a’+space(2)+’b’ 返回 a b
返回由重复空格组成的字符串 select Space(10)–[          ]
返回由指定数目的空格组成的字符串。

str(float 型小数[,总长度[,小数点后保留的位数]])

返回从默认表达转换而来的字符串 select Str(100)–[       100]
select str(123.451)返回 123(123前面有空格)
select len(str(123.451)) 返回 10
select str(123.451,3)返回123
select str(123.451,7,3)返回123.451
select str(123.451,7,1)返回123.5
select str(123.451,5,3)返回123.5
select str(123.651,2)返回**
返回由数字转换成的字符串。返回字符数不到总长度的前面补空格,超过总长度的截断小数位。如果需要截断整数位则返回**。
注意在截断时遵循四舍五入 总长度。它包括小数点、符号、数字以及空格。默认值为10。
小数点后最多保留16 位。默认不保留小数点后面的数字

stuff(字符串表达式 1,开始位置,长度,字符串表达式 2)

删除指定长度的字符,并在指定的起点处插入另一组字符
select Stuff(‘abcdefg’,2,4,’xxx’)–axxxfg
select stuff(‘abcdef’,2,2,’123’) 返回 a123def
在字符串表达式1 中在指定的开始位置删除指定长度的字符,并在指定的开始位置处插入字符串表达式2。返回新字符串

substring(字符串表达式,开始位置,长度)

select substring(‘abcdef’,2,2)返回bc
select substring(‘abfgsdfgcdef’,1,4)–abfg
返回子字符串

replace(字符串表达式 1,字符串表达式 2,字符串表达式 3)

select Replace(‘abcdefg’,’cd’,’xxx’)–abxxxefg
Select replace(‘abcttabchhabc’,’abc’,’123’) 返回 123tt123hh123
用字符串表达式3 替换字符串表达式 1 中出现的所有字符串表达式2 的匹配项。返回新的字符串

Quotename

select Quotename(‘create table’) – [create table]
select Quotename(‘dsafdsafdf’) – [dsafdsafdf]
返回为成为有效的SQL SERVER分隔标识符而添加了分隔符的UNICODE字符串


+拼接

1. 字符串 + 字符串
select '123'+'456'; -- 123456
注:SQL Server中没有concat函数(SQL Server 2012已新增concat函数)

2. 数字 + 字符串

2.1 int + varchar

SELECT 1 + 'bzz'     //提示错误“在将 varchar'bzz' 转换成数据类型 int 时失败”
SELECT 5 + '102.34'  //提示错误“在将 varchar'102.34' 转换成数据类型 int 时失败”
SELECT 4 + '101'     //返回int1052.2 decimal + varchar

SELECT '6' + 1.98   //返回  7.98
SELECT 'bzz' + 2.35     //提示错误“从数据类型 varchar 转换为 numeric 时出错。”
由此可见,系统会将字符串varchar类型转化为int,
若不能转换则提示错误,转换成功则进行数字计算。

3. 数字 + 数字
数字指的是intdecimal等类型。数字 +  数字,则进行数字相加,
若某字段为NULL,则计算结果为NULL4.字符串 + 字符串
字符串 + 字符串,则直接进行拼接。若某字段为NULL,则计算结果为NULL5. 使用CAST和CONVERT函数进行类型转换
通过上述实例,可以看出若要使用“+”进行字符串拼接或数字计算,最稳妥的方法是进行类型转换。

CAST()函数可以将某种数据类型的表达式转化为另一种数据类型
CONVERT()函数也可以将制定的数据类型转换为另一种数据类型
要求:将“678”转化为数值型数据,并与123相加进行数学运算。

SELECT CAST('678' AS INT) + 123; -- 801
SELECT CONVERT(INT, '678') + 123; -- 801
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值