SQL Server字符串函数(超实用)
- 1. len():计算字符串长度
- 2. lower()、upper():字符串转换为大、小写
- 3. ltrim()、rtrim():截去字符串左、右侧空格
- 4. space():返回由重复的空格组成的字符串
- 5. substring()、left()、right():取子字符串
- 6. replace():字符串替换
- 7. reverse():返回字符串值的逆向值
- 8. stuff():删除指定长度的字符,并在指定的起点处插入另一组字符
- 9. replicate():以指定的次数重复字符串值
- 10. charindex():返回字符串中指定表达式的开始位置
- 11. patindex():返回指定“表达式中模式”第一次出现的开始位置
- 12. unicode():返回输入表达式的第一个字符的整数值
- 13. str():返回由数字数据转换来的字符数据
- 14. ascii():得到字符的ASCII码
- 15. Char():得到一个与ASCII码数字对应的字符
- 16. nchar():返回返回具有指定的整数代码的 Unicode 字符
- 17. quotename() 转义
- 18. soundex():发音匹配度
以下所有例子均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() 转义
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字符串函数
本篇文章还是学习<程序员的SQL金典>内容的记录,此次将讲解的是SQL SERVER的字符串函数. 其实数据库跟程序语言库一样,都会集成很多可以使用的API.这些API,如果你熟悉的话,将 ...
- sql server 字符串函数大全
平常会用到一些函数处理字符串,用的不算频繁,所以每次用到的时候就忘记了,这次在网上找了一篇文档,担心突然某一天这篇文章找不到了,然后就把文章的内容复制了一份: /* 1,ASCII返回字符表达式中最左 ...
- SQL SERVER 字符串函数 STRING_SPLIT()
定义: STRING_SPLIT()函数根据指定的分隔符将字符串拆分为子字符串行. ※STRING_SPLIT 要求兼容性级别至少为 130. (即SSMS 2016及以上版本) ※级别低于 130 ...
- SQL Server 字符串函数
字符串函数 在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数. 1.获取字符的ASCII码 ASCII ASCII码是对字符的标准编码.要获取字符的ASCII码就可以 ...
- SQL SERVER 字符串函数 STUFF()
说明: STUFF 函数将字符串插入到另一个字符串中. 它从第一个字符串的开始位置删除指定长度的字符:然后将第二个字符串插入到第一个字符串的开始位置. 语法: STUFF ( character_ex ...
- SQL Server字符串函数STUFF的使用
前言: 最近有个实践练习是将学生报名数据表student中的[st_id]字段的第二个和第三个字符删除,然后在此位置插入新的字符串“200900”,其实就是替换的意思,生成新的字符串. STUFF 函 ...
- SQL SERVER 字符串函数 REPLACE()
定义: REPLACE()返回用另一个字符串值替换原字符串中出现的所有指定字符串值之后的字符串. 语法: REPLACE ( string_expression , string_pattern , ...
- SQL SERVER 字符串函数 PATINDEX()
定义: PATINDEX()返回模式在指定表达式中第一次出现的起始位置:如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零. 语法: PATINDEX ( '%pattern%' , exp ...
- sql server 字符串函数str()
语法: STR(nExpres[,nLength[,nDecimalPlaces]]) 参数: nExpression------STR要计算的数值表达式. nLength------------ST ...
随机推荐
- Apache Spark源码走读之7 -- Standalone部署方式分析
欢迎转载,转载请注明出处,徽沪一郎. 楔子 在Spark源码走读系列之2中曾经提到Spark能以Standalone的方式来运行cluster,但没有对Application的提交与具体运行流程做详细 ...
- 算法与数据结构题目的 PHP 实现:栈和队列 设计一个有 getMin 功能的栈
刚入手了一本<程序员代码面试指南>,书中题目的代码都是 Java 实现的,琢磨着把这些代码用 PHP 敲一遍,加深印象. 题目:设计一个有 getMin 功能的栈 —— 实现一个特殊的栈, ...
- EditText小技巧
1.让EditText不自动获取焦点 将EditText的某个父级控件设置成 android:focusable="true" android:focusableInTouchMo ...
- 【翻译】CEDEC2014跨世代多平台并行开发PS4版如龙维新开发的一年
本篇PPT讲述的是如龙4的开发过程中,集中在PS3和PS4并行开发中所遇到和解决的一些问题.如64位指针,DX9向DX11移植API的问题,以及在PS4上使用并行渲染在1080P下让FPS达到60等. ...
- 用命令行导出和导入MySQL数据库
php 用命令行导出和导入MySQL数据库 命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files ...
- [转]PHP高效率写法(详解原因)
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静 ...
- The Producer-Consumer Relationship
//Listing 3-1. The Producer-Consumer Relationship Version 1 public class PC { public static void mai ...
- 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题
在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...
- yum-config-manager YUM安装遭遇: [Errno 256] No more mirrors to try CentOS yum之$releasever和$basearch
YUM安装遭遇: [Errno 256] No more mirrors to try createrepo 有问题. CentOS yum之$releasever和$basearch分类: 操作系统 ...
- the differences between function and procedure
一.自定义函数: 1. 可以返回表变量 2. 限制颇多,包括 不能使用output参数: 不能用临时表: 函数内部的操作不能影响到外部环境: 不能通过select返回结果集: 不能update,del ...