T-SQL自带了一些字符串处理函数,可以用来处理数值型数据和字符型数据。本文共分两部分,对这些函数做了个简要介绍,并给出一些介绍如何使用的例子。我们在第一部分先介绍如何截取和修改字符串的值。第二部分介绍如何转换和手机字符串相关信息,以及如何执行“SOUNDEX”分析。
T-SQL提供了丰富的字符串处理函数,你可以用这些函数方便地处理各种类型的字符串,比如char类型,nchar类型,varchar类型和nvarchar类型。例如,你可以用字符串函数删除字符串尾部的空格,截取字符串,或者转换数值型数据为字符型数据。字符串处理函数给你的T-SQL语句带来了灵活性,使你可以更容易地操作没按你的需……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
T-SQL自带了一些字符串处理函数,可以用来处理数值型数据和字符型数据。本文共分两部分,对这些函数做了个简要介绍,并给出一些介绍如何使用的例子。我们在第一部分先介绍如何截取和修改字符串的值。第二部分介绍如何转换和手机字符串相关信息,以及如何执行“SOUNDEX”分析。
T-SQL提供了丰富的字符串处理函数,你可以用这些函数方便地处理各种类型的字符串,比如char类型,nchar类型,varchar类型和nvarchar类型。例如,你可以用字符串函数删除字符串尾部的空格,截取字符串,或者转换数值型数据为字符型数据。字符串处理函数给你的T-SQL语句带来了灵活性,使你可以更容易地操作没按你的需要出现的字符串数据。
在本文中,我会描述SQL Server中的一些基本字符串处理函数,并举例说明它们的用法。我在SQL Server 2008上创建了一个本地实例来运行这些示例,基于“AdventureWorks2008”样例数据库进行。这些例子可以分为五类:截取字符串数据,修改数据,转换数据,获取数据相关信息,对数据执行SOUNDEX分析。这种组织方式是为了使大家对每个函数和它们之间的差异有一个更好的理解。
截取字符串的值
下面的一组函数详细描述了如何截取字符串的一部分。这些函数大部分都包含在下面的SELECT语句中:
SELECT Name, LEFT(Name, 12) AS BikeType, SUBSTRING(Name, 9, 4) AS Model, RIGHT(Name, 2) AS Size, RTRIM(Style) AS Style FROM Production.Product WHERE ProductNumber LIKE 'bk-t%' |
你可以看到,SELECT语句中包括函数“LEFT”,“SUBSTRING”,“RIGHT”和“RTRIM”。在“AdventureWorks2008”数据库中运行该语句时,你会得到如下结果:
Name | BikeType | Model | Size | Style |
--------------------- | ----------- | ------ | ----- | ---- |
Touring-2000 Blue, 60 | Touring-2000 | 2000 | 60 | U |
Touring-1000 Yellow, 46 | Touring-1000 | 1000 | 46 | U |
Touring-1000 Yellow, 50 | Touring-1000 | 1000 | 50 | U |
Touring-1000 Yellow, 54 | Touring-1000 | 1000 | 54 | U |
Touring-1000 Yellow, 60 | Touring-1000 | 1000 | 60 | U |
Touring-3000 Blue, 54 | Touring-3000 | 3000 | 54 | U |
Touring-3000 Blue, 58 | Touring-3000 | 3000 | 58 | U |
Touring-3000 Blue, 62 | Touring-3000 | 3000 | 62 | U |
Touring-3000 Yellow, 44 | Touring-3000 | 3000 | 44 | U |
Touring-3000 Yellow, 50 | Touring-3000 | 3000 | 50 | U |
Touring-3000 Yellow, 54 | Touring-3000 | 3000 | 54 | U |
Touring-3000 Yellow, 58 | Touring-3000 | 3000 | 58 | U |
Touring-3000 Yellow, 62 | Touring-3000 | 3000 | 62 | U |
Touring-1000 Blue, 46 | Touring-1000 | 1000 | 46 | U |
Touring-1000 Blue, 50 | Touring-1000 | 1000 | 50 | U |
Touring-1000 Blue, 54 | Touring-1000 | 1000 | 54 | U |
Touring-1000 Blue, 60 | Touring-1000 | 1000 | 60 | U |
Touring-2000 Blue, 46 | Touring-2000 | 2000 | 46 | U |
Touring-2000 Blue, 50 | Touring-2000 | 2000 | 50 | U |
Touring-2000 Blue, 54 | Touring-2000 | 2000 | 54 | U |
Touring-3000 Blue, 44 | Touring-3000 | 3000 | 44 | U |
Touring-3000 Blue, 50 | Touring-3000 | 3000 | 50 | U |
(查询到22行记录)
我们来分别看看这些函数。“LEFT”函数和“RIGHT”函数很相似。“LEFT”函数返回字符串左面的部分,“RIGHT”函数返回字符串右边的部分,这两个函数都根据指定的字符数进行截取。
例如,在上面的“SELECT”语句中,“LEFT”函数返回“Name”列的前12个字符。该函数有两个参数:第一个参数是字符串表达式,第二个参数是字符数。在这个例子中,字符串表达式是“Name”列,字符数是“12”。结果,“Name”列所有值的后半部分都被截掉了,只剩下12个字符返回。如果你留意结果集的第一行,你会发现“Name”列的值“Touring-2000 Blue”已经变成了“Touring-2000”。
“RIGHT”函数的用法也是一样的,它截取字符串右边的部分。在上面的例子中,“RIGHT”函数只返回“Name”列的最后两个字符。同样,“Name”列被指定为字符串表达式,设置的字符数为“2”,返回的结果为两位的字符串。
“SUBSTRING”函数可以提取字符串的任意部分。该函数有三个参数:第一个参数是字符串表达式,第二个参数是指定从哪里开始截取,第三个参数表示截取多长的字符串。在上面的例子中,字符串表达式仍然是“Name”列。第二个参数“9”的意思是我们应该从第九个字符开始(截取),第三个参数“4”意思是获取四个字符。正如查询结果所示,“Model”列的每一行都只显示了第九到第十二个字符。例如,在第一行中,“2000”就从“Name”列中提取出来了。
本例中还有一个函数是“RTRIM”,它的功能是去掉字符串(在第一个参数中指定)尾部的所有空格。在本例中,RTRIM函数用来删掉“Style”列尾部的空格。该列被配置为“NCHAR(2)”数据类型,意思是所有单字符值尾部都会补上一个空格(补足两位)。在某些应用程序和提取过程中,尾部的空格可能会引起问题(特别是在如果你试图对该值进行匹配的时候)。然而,“RTRIM”函数会删掉那个空格。
注意,“RTRIM”函数还有与它相对的另一个函数:“LTRIM”函数。它会删除字符串左侧的空格。尽管“RTRIM”更常用,“LTRIM”在某些情况下也很有用。
翻译
TechTarget特邀编辑。2003年入软件行业,熟悉软件过程所有环节,对机构信息化的各方面有深入理解和实践经验。现就职于某互联网创业公司,目前关注互联网分布式系统架构和机器学习。喜欢传统文化社科哲学(尤喜《周易》、《老子》),喜健身喜抓举(具备抱人引体向上的能力),喜欢中国象棋(具备盲棋1对2的能力)。
相关推荐
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
横向扩展SQL Server应用程序:提高工作负载的选项
SQL Server管理员面临的最大挑战之一就是扩展数据库以适应更为繁重的数据处理工作负载。然而事情越发复杂的是,虽然Microsoft提供了许多不同的SQL Server可扩展性选项,但它们并不都适合于每种情况。
-
五大技巧构建首个SQL Server容器
容器的世界庞大而复杂,使用者可能会感到困扰,这里我们将列出一些示例,以便引导您顺利完成SQL Server容器的创建和管理。