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() 转义

参考《SqlServer中quotename用法与实例

18. soundex():发音匹配度

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

select sname, soundex(sname) from student

结果为:

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

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

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

结果为:

时间: 2024-10-06 05:51:46

SQL Server字符串函数(超实用)的相关文章

Sql Server字符串函数

字符串函数用于对字符和二进制字符进行各种操作 1.ASCII()函数  ASCII(character_expression)函数用于返回字符串表达式中最左侧的ASCII代码值.参数character_expression必须是一个char或varchar类型的字符串表达式. eg: select ASCII('s'),ASCII('sql'),ASCII('1');执行结果如图:字符's'的ASCII值为115,所以第一行和第二行返回结果相同,对于第三条语句中的纯数字的字符串,可以不用单引号括

SQL Server 字符串函数

字符串函数 在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数. 1.获取字符的ASCII码 ASCII ASCII码是对字符的标准编码.要获取字符的ASCII码就可以通过调用ASCII函数来实现. 语法结构: ASCII(espression) 这里的expression是一个返回char或varchar数据类型的表达式,ASCII函数仅对表达式最左侧的字符返回ASCII码值. 返回值:int数据类型. 示例: select ASCII('f')    --输出

[转]SQL Server字符串处理函数大全

select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了.left()是sql函数.select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据.字符串和表达式执行不同的运算.此类函数作用于CHAR.VARCHAR. BINARY.

SQL Server系统函数:字符串函数

原文:SQL Server系统函数:字符串函数 1.字符转化为ASCII,把ASCII转化为字符,注意返回的值是十进制数 select ASCII('A'),ASCII('B'),ASCII('a'),ASCII('b'),ASCII('?') select CHAR(65),CHAR(66),CHAR(97),CHAR(98),CHAR(63) 2.unicode字符转化为整数,把整数转化为unicode字符 select UNICODE('A'),UNICODE('B'),UNICODE('

数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数

SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函数的基本类型是: Aggregate 函数 Scalar 函数 合计函数(Aggregate functions) Aggregate 函数的操作面向一系列的值,并返回一个单一的值. 注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使

13、SQL Server 自定义函数

SQL Server 自定义函数 在SQL Server中不仅可以使用系统函数(如:聚合函数,字符串函数,时间日期函数等)还可以根据需要自定义函数. 自定义函数分为标量值函数和表值函数. 其中,标量值函数用于返回单个值,而表值函数用于返回一个结果集. 函数参数 参数可以是常量.表中的某个列.表达式或其他类型的值.在函数中有三种类型的参数. 1.输入:指必须输入一个值. 2.可选值:在执行该参数时,可以选择不输入参数. 3.默认值:函数中默认有值存在,调用时可以不指定该值. 创建标量值函数 语法:

SQL Server 2000 函数使用---CAST 和 CONVERT

本文来自:http://www.cnblogs.com/xh831213/category/47654.html 将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相似的功能. 语法 使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 参数 expression 是任何有效的 Microsoft® SQL

四个很好用的Sql Server 日期函数:DateDiff、DatePart、DateAdd、DateName

我以前查一段时间范围内的数据都是在程序里计算好日期再掉查询语句,现在我用下面的函数.SQL SERVER没有查一季度数据的函数. DateDiff函数: 描述 返回两个日期之间的时间间隔. 语法 DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]]) DateDiff 函数的语法有以下参数: 参数 描述 interval 必选.字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔.有关数值,请参

sql sever 字符串函数

SQL Server之字符串函数 以下所有例子均Studnet表为例:  计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !')select upper('i am a student !') 截去字符串左.右侧空格