SQL Server之字符串函数
以下所有例子均Studnet表为例:

计算字符串长度
len()用来计算字符串的长度
select sname ,len(sname) from student
字符串转换为大、小写
lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写
select lower('I AM A STUDENT !')
select upper('i am a student !')
截去字符串左、右侧空格
ltrim() 用来将一个字符串左侧的空格去掉 ,rtrim()用来将一个字符串右侧的空格去掉
declare @str varchar(100)
set @str=' 我的左侧有空格!'
select @str as 初始字符, len(@str) as 初始长度,ltrim(@str) as 现有字符,len(ltrim(@str)) as 现有长度
返回由重复的空格组成的字符串
space(integer_expression) integer_expression 指示空格个数的正整数。如果 integer_expression 为负,则返回空字符串。
select 'A'+ space(2)+'B'
取子字符串
substring(string,start_position,length) 可以从任意位置取任意长度的子字符串,
left(string,length) 从左侧开始取子字符串
right(string,length)从右侧开始取子字符串
select substring('HelloWorld!',6,6)
select left('HelloWorld!' ,5)
select right('HelloWorld!' ,6)
字符串替换
replace(string,要被替换的字符串,替换的字符串)
select replace('HelloWorld!','o','e') 结果为:HelleWerld!
返回字符串值的逆向值
reverse(string_expression)
select reverse('abc') 结果为:cba
删除指定长度的字符,并在指定的起点处插入另一组字符
stuff(character_expression , start , length ,character_expression)
start 一个整数值,指定删除和插入的开始位置。
length 一个整数,指定要删除的字符数。
select stuff('abcdefg',1,6,'Hello ') 结果为:Hello g
以指定的次数重复字符串值
replicate(string_expression ,integer_expression)
select replicate('abc',4) 结果为:abcabcabcabc
返回字符串中指定表达式的开始位置
charindex(expression1 ,expression2 , start_location )或charindex(expression1 ,expression2 )
expression1在expression2 中的开始位置
select charindex('H','elloHWorld') 结果为:5
返回指定表达式中模式第一次出现的开始位置
patindex('%pattern%',expression) 返回指定表达式中某模式第一次出现的起始位置;
如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
select patindex('%Hello%','WorldHello') 结果为:6
返回输入表达式的第一个字符的整数值
unicode( 'ncharacter_expression' ) ' ncharacter_expression ' 为 nchar 或 nvarchar 表达式。
select unicode('a') 结果为:97
select unicode('abc') 结果为:97
返回由数字数据转换来的字符数据
str(float_expression , length ,decimal )
float_expression 带小数点的近似数字 (float) 数据类型的表达式。
length 总长度。它包括小数点、符号、数字以及空格。默认值为 10。
decimal 小数点右边的小数位数。decimal 必须小于等于 16。如果 decimal 大于 16,则将结果截断为小数点右边的 16 位。
select str(123.436,2), len(str(123.436,2)) //当表达式超出指定长度时,字符串为指定长度返回 ** select str(123.436), len(str(123.436)),
str(123.436,6), len(str(123.436,6)),
str(123.436,6,1), len(str(123.436,6,1)) //由六个数字和一个小数点组成的表达式转换为有六个位置的字符串。
数字的小数部分舍入为一个小数位。
select str(1234.436), len(str(1234.436)),
str(1234.436,6), len(str(1234.436,6)),
str(1234.436,6,1),len(str(1234.436,6,1))
结果为:


得到字符的ASCII码
ascii()用来得到一个字符的ASCII码,它有且只有一个参数,如果参数为字符串,那么取第一个字符的ASCII码
select ascii('H')
select ascii('HelloWorld!')
得到一个与ASCII码数字对应的字符
Char(integer_expression) integer_expression 介于 0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。
select Char(72)
返回返回具有指定的整数代码的 Unicode 字符
nchar(integer_expression) integer_expression 介于 0 与 65535 之间的正整数。如果指定了超出此范围的值,将返回 NULL。
select nchar(1000)
返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 SQL Server 分隔标识符。
quotename('character_string') character_string 不得超过 128 个字符。超过 128 个字符的输入将返回 NULL。
select quotename('abc[aa]def')
结果为:[abc[]]def] 请注意,字符串 abc[]def 中的右方括号有两个,用于指示转义符。
select QUOTENAME('abcdef','''') --分隔符是两个单引号
-- 'abcdef'
select QUOTENAME('abcdef') --分隔符是]
-- [abcdef]
select QUOTENAME('abcdef','{}') --分隔符是}
-- {abcdef}
发音匹配度
有时候我们并不知道一个人姓名的拼写,但是我们知道他的发音,这时我们可以进行发音的匹配度测试。
soundex()用于计算一个字符串的发音特征性,这个特征值为一个四个字符的字符串,特征性的第一个字符总是初始字符串中的第一个字符,而后是一个三位数的数值。
select sname ,soundex(sname) from student
结果为:

发音特征值的含义非常复杂,如果要根据两个发音特征值来分析两个字符串的发音相似度的话非常麻烦。
可以使用difference()来简化两个字符串的发音相似度比较,它可以计算两个字符串的发音特征值,并且比较它们,
然后返回一个0~4之间的值来反映两个字符串的发音相似度,这个值越大则表示两个字符串的发音相似度越大。
select sname,soundex(sname), difference(sname,'Herry') from stu
结果为:
SQL Server之字符串函数的更多相关文章
- SQL Server:字符串函数
以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...
- SQL Server 分隔字符串函数实现
在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...
- sql server常用字符串函数
--返回字符表达式中最左侧字符的ASCII代码值 --将整数ASCII代码转换为字符 )--a )--A ')--A SELECT CHAR('A')--在将 varchar 值 'A' 转换成数据类 ...
- Sql Server分割字符串函数
-- Description: 分割字符串函数 -- SELECT * FROM dbo.Split('a,b,c,d,e,f,g',',') -- ========================= ...
- SQL Server中字符串函数LEN 和 DATALENGTH辨析
LEN:返回指定字符串表达式的字符(而不是字节)数,其中不包含尾随空格. DATALENGTH:返回用于表示任何表达式的字节数. 示例1:(相同,返回结果都为5): select LEN ('ssss ...
- sql server中常用方法函数
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...
- SQL Server 内置函数、临时对象、流程控制
SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...
- 10、SQL Server 内置函数、临时对象、流程控制
SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...
- SQL Server 2005 MD5函数
原文:SQL Server 2005 MD5函数 在SQL Server 2005下自带的函数HashBytes() ,此函数是微软在SQL Server 2005中提供的,可以用来计算一个字符串的M ...
随机推荐
- poj 1066 线段相交
链接:http://poj.org/problem?id=1066 Treasure Hunt Time Limit: 1000MS Memory Limit: 10000K Total Subm ...
- 读jQuery源码有感3
这次的主题是,具体的库和抽象的思路. 当看到Deferred这个区块时,觉得jQuery代码设计挺复杂,得用许多脑力才能看明白. 可是把这个峰回路转十八回的代码看懂又如何,是为了使用过程中出现bug后 ...
- LTE Module User Documentation(翻译1)——背景、使用概述、基本的仿真程序和配置LTE模型参数
LTE用户文档 (如有不当的地方,欢迎指正!) 1.背景 假定读者已经熟悉 ns-3 simulator ,能运行一般的仿真程序.如果不是的话,强烈推荐读者参考 [ns3tutorial]. 2. ...
- 记CVTE2014年春季招聘实习生求职历程
进度:目前已经过了网测 明天一面,好紧张,人生第一次实习面试.据说只有一分钟. 网测; 首先在http://exam.cvte.com/ 注册了账号,然后填写相关的个人信息,这里要仔细填写,因为它最后 ...
- iOS - UITabBarController
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UITabBarController : UIViewController <UITabBarDelegate ...
- JavaWeb 8 Cookie
JavaWeb 8 Cookie 2. 会话管理入门 2.1 生活中会话 我: 小张,你会跳小苹果码? 小张: 会,怎么了? ...
- 这个算asp.net的一个bug吗?
asp.net设置按钮Enabled="false"后OnClientClick中添加的验证脚本消失了 下面的确可以 <asp:Button ID="btnRegi ...
- Maven——使用Nexus搭建Maven私服
原文:http://www.cnblogs.com/xdp-gacl/p/4068967.html Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要 ...
- nfs服务器设置
前段时间重新装了一下Linux系统,结果导致NFS服务器总是挂在不成功,于是粗略学习了一下: NFS服务需要两个软件包: 1.nfs-utiles-* 2.portmap-* nfsd:它是基本的NF ...
- spring 编程式事务管理和声明式事务管理
编程式事务管理 Spring 的编程式事务管理概述 在 Spring 出现以前,编程式事务管理对基于 POJO 的应用来说是唯一选择.用过 Hibernate 的人都知道,我们需要在代码中显式调用be ...