`
sunrf5566
  • 浏览: 76786 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

结果为:
   

 

来源:http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html

分享到:
评论

相关推荐

    SQL截取字符串函数

    ### SQL截取字符串函数详解 在SQL中,处理文本数据是一项常见的需求,特别是在数据库管理和数据分析领域。本文将详细介绍几种常用的SQL截取字符串函数及其应用场景,包括`LEFT`、`RIGHT`、`SUBSTRING`以及一些高级...

    sqlserver中根据某个字符切割字符串函数

    sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值

    SQL SERVER 字符串 增长 生成唯一字符串 函数

    主要用于在数据库设计时需要自己生成定长的字符串作为关键字。这一个用户字符串每次递增而形成新串的数据库函数方法。

    SQLServer自定义字符串聚合函数DLL文件(可直接使用)

    http://yufeng521000.iteye.com/blog/2076607; 根据这篇BOLG的函数编译的DLL,方便大家直接使用; 里面有两个DLL分别是NET3.5,以及NET4.0,下载后根据BOLG以及数据库版本选择对应的DLL使用;

    Sqlserver 2014 之 自定义字符串聚合函数

    在描述中提到的“Sqlserver 2014 之 自定义字符串聚合函数”正是针对这个需求而展开的讨论。 在SQL Server 2014之前,如果要实现类似`STRING_AGG`的功能(这是在SQL Server 2017中引入的),我们需要创建自定义的...

    SQL SERVER2012中新增函数之字符串函数CONCAT详解

    在SQL Server 2012中,引入了一个新的字符串函数——CONCAT,它的主要功能是方便地连接多个字符串。在CONCAT函数出现之前,我们通常使用 "+" 运算符来连接字符串,但这种方法存在一个问题,即如果其中任何一个字符串...

    SQL Server字符串处理函数大全

    以下是一些常见的SQL Server字符串处理函数及其详细解释: 1. **字符转换函数** - `ASCII()`:返回字符串中最左侧字符的ASCII码值。例如,`ASCII('A')`将返回65。 - `CHAR()`:根据ASCII码值返回对应的字符。`...

    C#扩展SQLServer 2005 字符串聚合函数

    字符串聚合函数是指能够处理字符串集合并返回单个字符串结果的函数。例如,可能需要将多个字符串连接成一个长字符串,或者计算字符串集合中字符的总数。在SQL Server中,我们不能直接使用内置的SUM()或COUNT()函数对...

    Sql Server数据库中自定义拆分字符串函数Split()

    Sql Server数据库中自定义拆分字符串函数Split()

    sqlserver 字符串分割、包含、匹配

    2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 3、检查一个元素是否在数组中,返回1或0 4、检查一个元素是否与数组中的相匹配,并返回相匹配的数组的值。参数值为0表示全模糊...

    SQLServer逗号分隔的字符串转换成表

    2. 利用 SQL Server 函数进行字符串拆分:可以使用 SQL Server 的字符串函数,例如 CHARINDEX、LEFT、RIGHT、LEN 等函数对字符串进行拆分。 3. 将拆分后的数据写入到临时表中:将拆分后的数据写入到第 1 步中创建的...

    SQL Server字符串切割函数

    在SQL Server中,字符串处理是常见的任务之一,而字符串切割函数则是处理字符串的重要工具。本文将深入探讨SQL Server中的字符串切割函数,特别是如何创建和使用用户定义函数来实现这一功能。 首先,我们要明白用户...

    SQL SERVER 关于日期函数(字符转日期,日期转字符串)

    SQL Server 中的日期函数可以分为两大类:日期和时间函数、字符串和日期函数。日期和时间函数主要用来处理日期和时间数据,包括获取当前日期和时间、计算日期和时间差等。字符串和日期函数主要用来将日期和时间数据...

    SqlServer时间日期处理函数及字符串转换

    SqlServer时间日期处理函数及字符串转换 SqlServer时间日期处理函数及字符串转换 文章分类:数据库 最近做的报表,用SqlServer2005,边做边学吧,虽然速度有些慢~

    Sql Server 字符串聚合函数

    总结起来,SQL Server的标准聚合函数不支持字符串聚合,但可以通过创建自定义函数或使用特定版本提供的`STRING_AGG`函数来实现这个需求。在实际应用中,我们需要根据数据规模和数据库版本选择合适的方法。

    sqlserver 字符串分割表函数(新写法) fn_split 成表函数(带序号)

    sqlserver 字符串分割表函数(新写法) fn_split 成表函数(带序号)

    SQL Server截取字符串.docx

    SUBSTRING 函数是 SQL Server 中截取字符串的基本函数,语法为:`SUBSTRING (expression, start, length)`,其中 `expression` 是要截取的字符串,`start` 是截取的开始位置,`length` 是截取的长度。 例如,要截取...

Global site tag (gtag.js) - Google Analytics