以下所有例子均Studnet表为例:

1. len():计算字符串长度

len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度

select sname, len(sname) from student

2. lower()、upper():字符串转换为大、小写

lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写

select lower('I AM A STUDENT !')
select upper('i am a student !')

3. ltrim()、rtrim():截去字符串左、右侧空格

ltrim():用来将一个字符串左侧的空格去掉,rtrim()用来将一个字符串右侧的空格去掉

declare @str varchar(100);
set @str=' 我的左侧有空格!';
select @str as 初始字符, len(@str) as 初始长度, ltrim(@str) as 现有字符, len(ltrim(@str)) as 现有长度;

返回结果:初始长度分别为9和8

4. space():返回由重复的空格组成的字符串

space(integer_expression):integer_expression 指示空格个数的正整数。如果 integer_expression 为负,则返回空字符串。

select 'A'+ space(2)+'B'    /* 结果: 'A  B' */

5. substring()、left()、right():取子字符串

  • substring(string, start_position, length):可以从任意位置取任意长度的子字符串,

  • left(string, length):从左侧开始取子字符串

  • right(string, length):从右侧开始取子字符串

select substring('HelloWorld!', 6, 6)   /* 结果:World */
select left('HelloWorld!', 5) /* 结果:Hello */
select right('HelloWorld!', 6) /* 结果:oWorld */

6. replace():字符串替换

replace(string, 要被替换的字符串, 替换的字符串)

select replace('HelloWorld!','o','e')   /* 结果为:HelleWerld! */

7. reverse():返回字符串值的逆向值

reverse(string_expression)

select reverse('abc')   /* 结果为:cba*/

8. stuff():删除指定长度的字符,并在指定的起点处插入另一组字符

stuff(character_expression, start, length, character_expression) start:整数,指定删除和插入的开始位置。 length:整数,指定要删除的字符数。

select stuff('abcdefgf', 2, 6, 'Hello-')    /* 结果为:aHello-f */
select stuff('abcdefgf', 2, 6, 'Hello') /* 结果为:aHellof */

9. replicate():以指定的次数重复字符串值

replicate(string_expression ,integer_expression)

select replicate('abc', 4)  /* 结果为:abcabcabcabc */

10. charindex():返回字符串中指定表达式的开始位置

charindex(expression1 ,expression2 , start_location )或charindex(expression1 ,expression2 )

expression1在expression2 中的开始位置

select charindex('H','elloHWorldHabc')    /* 结果为:5 */

11. patindex():返回指定“表达式中模式”第一次出现的开始位置

patindex('%pattern%', expression):返回指定“表达式中某模式”第一次出现的起始位置; 如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。

select patindex('%Hello%','WorldHello') 结果为:6

12. unicode():返回输入表达式的第一个字符的整数值

unicode('ncharacter_expression'):'ncharacter_expression' 为 nchar 或 nvarchar 表达式。

select unicode('a')        /* 结果为:97 */
select unicode('abc') /* 结果为:97 */

13. str():返回由数字数据转换来的字符数据

str(float_expression, length ,decimal ) float_expression:带小数点的近似数字 (float) 数据类型的表达式。 length:总长度。它包括小数点、符号、数字以及空格。默认值为 10。 * decimal:小数点右边的小数位数。decimal 必须小于等于 16。如果 decimal 大于 16,则将结果截断为小数点右边的 16 位。

select str(1234.436, 3)         /* 结果为:'**';当表达式超出指定长度时返回'**' */
select len(str(1234.436, 3)) /* 结果为:3 */
select str(123.436), len(str(123.436)) /* 结果为:'123', 10 */
select str(123.436, 6), len(str(123.436, 6)) /* 结果为:'123', 6 */
select str(123.436, 6, 1), len(str(123.436,6, 1)) /* 结果为:'123.4', 6 */

14. ascii():得到字符的ASCII码

ascii():用来得到一个字符的ASCII码,它有且只有一个参数,如果参数为字符串,那么取第一个字符的ASCII码

select ascii('H')               /* 结果为:72 */
select ascii('HelloWorld!') /* 结果为:72 */

15. Char():得到一个与ASCII码数字对应的字符

Char(integer_expression):integer_expression 介于 0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。

select Char(72)     /* 结果为:H */

16. nchar():返回返回具有指定的整数代码的 Unicode 字符

nchar(integer_expression) integer_expression 介于 0 与 65535 之间的正整数。如果指定了超出此范围的值,将返回 NULL。

select nchar(20013)        /* 结果为:'中' */
select NCHAR(72) /* 结果为:'H' */

17. quotename() 转义

参考《SqlServer中quotename用法与实例

18. soundex():发音匹配度

有时候我们并不知道一个人姓名的拼写,但是我们知道他的发音,这时我们可以进行发音的匹配度测试。 soundex():用于计算一个字符串的发音特征性,这个特征值为一个四个字符的字符串,特征性的第一个字符总是初始字符串中的第一个字符,而后是一个三位数的数值。

select sname, soundex(sname) from student

结果为:

发音特征值的含义非常复杂,如果要根据两个发音特征值来分析两个字符串的发音相似度的话非常麻烦。

可以使用difference()来简化两个字符串的发音相似度比较,它可以计算两个字符串的发音特征值,并且比较它们,然后返回一个0~4之间的值来反映两个字符串的发音相似度,这个值越大则表示两个字符串的发音相似度越大。

select sname, soundex(sname), difference(sname,'Herry') from stu

结果为:

本文转自《SQL Server之字符串函数》,并稍作修改。

SQL Server:字符串函数的更多相关文章

  1. SQL SERVER字符串函数

    本篇文章还是学习<程序员的SQL金典>内容的记录,此次将讲解的是SQL SERVER的字符串函数. 其实数据库跟程序语言库一样,都会集成很多可以使用的API.这些API,如果你熟悉的话,将 ...

  2. sql server 字符串函数大全

    平常会用到一些函数处理字符串,用的不算频繁,所以每次用到的时候就忘记了,这次在网上找了一篇文档,担心突然某一天这篇文章找不到了,然后就把文章的内容复制了一份: /* 1,ASCII返回字符表达式中最左 ...

  3. SQL SERVER 字符串函数 STRING_SPLIT()

    定义: STRING_SPLIT()函数根据指定的分隔符将字符串拆分为子字符串行. ※STRING_SPLIT 要求兼容性级别至少为 130. (即SSMS 2016及以上版本) ※级别低于 130 ...

  4. SQL Server 字符串函数

    字符串函数 在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数. 1.获取字符的ASCII码 ASCII ASCII码是对字符的标准编码.要获取字符的ASCII码就可以 ...

  5. SQL SERVER 字符串函数 STUFF()

    说明: STUFF 函数将字符串插入到另一个字符串中. 它从第一个字符串的开始位置删除指定长度的字符:然后将第二个字符串插入到第一个字符串的开始位置. 语法: STUFF ( character_ex ...

  6. SQL Server字符串函数STUFF的使用

    前言: 最近有个实践练习是将学生报名数据表student中的[st_id]字段的第二个和第三个字符删除,然后在此位置插入新的字符串“200900”,其实就是替换的意思,生成新的字符串. STUFF 函 ...

  7. SQL SERVER 字符串函数 REPLACE()

    定义: REPLACE()返回用另一个字符串值替换原字符串中出现的所有指定字符串值之后的字符串. 语法: REPLACE ( string_expression , string_pattern , ...

  8. SQL SERVER 字符串函数 PATINDEX()

    定义: PATINDEX()返回模式在指定表达式中第一次出现的起始位置:如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零. 语法: PATINDEX ( '%pattern%' , exp ...

  9. sql server 字符串函数str()

    语法: STR(nExpres[,nLength[,nDecimalPlaces]]) 参数: nExpression------STR要计算的数值表达式. nLength------------ST ...

  10. SQL Server字符串函数(超实用)

    1. len():计算字符串长度 2. lower().upper():字符串转换为大.小写 3. ltrim().rtrim():截去字符串左.右侧空格 4. space():返回由重复的空格组成的 ...

随机推荐

  1. 第 27 章 CSS 传统布局[下]

    学习要点: 1.定位布局 2.box-sizing 3.resize 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 早期所使用的传统布局,很多情况下,这些布局方式还是非常有用的. 一.定位布 ...

  2. Scalaz(5)- typeclass:my typeclass scalaz style-demo

    我们在上一篇讨论中介绍了一些基本的由scalaz提供的typeclass.这些基本typeclass主要的作用是通过操作符来保证类型安全,也就是在前期编译时就由compiler来发现错误.在这篇讨论中 ...

  3. python验证登录

    一个web2.0时代的网站,自然少不了用户注册,登录,验证的功能,那么python可以怎样实现登录验证呢 这里我们使用装饰器来做登录验证 网站构成 假设我们有这样一个网站,是一个类似与博客园这种多个用 ...

  4. 通过Google身份验证器加强Linux帐户安全

    下载Google的身份验证模块: # wget https://google-authenticator.googlecode.com/files/libpam-google-authenticato ...

  5. Java final方法

    之所以要使用final方法,可能是出于对两方面理由的考虑.第一个是为方法"上锁",防止任何继承类改变它的本来含义.设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖 ...

  6. css知多少(8)——float上篇

    1. 引言 对于我们所有的web前端开发人员,float是或者曾经一度是你最熟悉的陌生人——你离不开它,却整天承受着它所带给你的各种痛苦,你以为它很简单就那么一点知识,但却驾驭不了它各种奇怪的现象. ...

  7. Web 开发最有用的50款 jQuery 插件集锦——《图片特效篇》

    <Web 开发最有用的50款 jQuery 插件集锦>系列文章向大家分享最具创新的50款 jQuery 插件,这些插件分成以下类别:网页布局插件,导航插件,表格插件,滑块和转盘插件,图表插 ...

  8. 【2015上半年总结】js开源组件开发系列索引

    js开源组件开发系列一索引 2015.8 by 田想兵 个人网站 从3月份进入新公司以来,时经五个月,我以平均每周1个小组件的速度,已经完成的js组件有22个之余了,已基本上全部用到实际项目中,这些小 ...

  9. [实现]Javascript代码的另一种压缩与加密方法——代码图片转换

    代码=图片 图片=代码 JS代码对于喜欢F12的同志来说,连个遮羞布都没有... 虽然把代码变成图片也仅仅只是增加一层纱布而已...但这方法还是挺好玩的,而且代码也被压缩了一点. 第一次看到[图片=代 ...

  10. angular源码分析:angular中的依赖注入式如何实现的

    一.准备 angular的源码一份,我这里使用的是v1.4.7.源码的获取,请参考我另一篇博文:angular源码分析:angular源代码的获取与编译环境安装 二.什么是依赖注入 据我所知,依赖注入 ...