我们要讨论的最后一组字符串函数与“SOUNDEX”有关,它是一种可以把字符值转换成四个字符构成编码的系统,目的是确定类似发音的单词。“SOUNDEX”函数返回的第一个字符与目标字符串的第一个字符串相同,后面三个字符是对辅音求值得到的数值代码。(元音被忽略,除非元音是第一个字母。) 在下面的T-SQL语句中,我们用与“SOUNDEX”有关的函数来分析两个名字: DECLARE @Name1 varchar(30) SET @Name1 = (SELECT LastName FROM Person.Person ……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
我们要讨论的最后一组字符串函数与“SOUNDEX”有关,它是一种可以把字符值转换成四个字符构成编码的系统,目的是确定类似发音的单词。“SOUNDEX”函数返回的第一个字符与目标字符串的第一个字符串相同,后面三个字符是对辅音求值得到的数值代码。(元音被忽略,除非元音是第一个字母。)
在下面的T-SQL语句中,我们用与“SOUNDEX”有关的函数来分析两个名字:
DECLARE @Name1 varchar(30) SET @Name1 = (SELECT LastName FROM Person.Person WHERE BusinessEntityID = 341) DECLARE @Name2 varchar(30) SET @Name2 = (SELECT LastName FROM Person.Person WHERE BusinessEntityID = 441) SELECT @Name1 AS Name1, @Name2 AS Name2, SOUNDEX(@name1)AS SoundexName1, SOUNDEX(@Name2) AS SoundexName2, DIFFERENCE(@Name1, @Name2) AS SoundexDiff |
“SET”子查询返回的名字是“Allen”和“Alan”,它们被插入到变量并在SELECT语句中使用,返回结果如下:
Name1 | Name2 | SoundexName1 | SoundexName2 | SoundexDiff |
----- | ----- | ------------ | ------------ | ----------- |
Allen | Alan | A450 | A450 | 4 |
(1 row(s) affected)
第一次使用“SOUNDEX”函数时,分析名字“Allen”;第二次分析名字“Alan”。要注意,该函数只有一个参数,就是待分析的字符串。在本例中,“SOUNDEX”分析两个拼写返回相同的结果,说明名字非常相似。这一点在用于识别某些名字拼写有两处不同的人时很方便。“DEFFERENCE”函数也有类似功能,它有两个参数,这两个参数就是待比较的字符串,返回结果是一个整数,表示两个字符串之间差异的程度。返回的整数结果可以是0到4之间的值。值0表示两个字符串之间几乎没有相似之处,而值4表示两个字符串非常相似。在上面的例子中,该函数返回4,因为两个名字非常相似。
如果你想知道不太相似的两个名字运行时的结果,请运行下面的语句:
DECLARE @Name3 varchar(30) SET @Name3 = (SELECT LastName FROM Person.Person WHERE BusinessEntityID = 1829) DECLARE @Name4 varchar(30) SET @Name4 = (SELECT LastName FROM Person.Person WHERE BusinessEntityID = 2580) SELECT @Name3 AS Name3, @Name4 AS Name4, SOUNDEX(@Name3)AS SoundexName3, SOUNDEX(@Name4) AS SoundexName4, DIFFERENCE(@Name3, @Name4) AS SoundexDiff |
在本例中,“SOUNDEX”函数对名字“Su”返回值“S000”,对名字“Suarez”返回值“S620”。此外,“DIFFERENCE”函数返回值3,结果如下表所示:
Name3 | Name4 | SoundexName3 | SoundexName4 | SoundexDiff |
----- | ------ | ------------ | ------------ | ----------- |
Su | Suarez | S000 | S620 | 3 |
(1 row(s) affected)
“SOUNDEX”函数和字符串处理函数为处理字符数据提供了极大的灵活性。尽管这些例子相对简单一些,我们可以利用这些函数创建更复杂的语句。一定要看看SQL Server联机手册获取更多相关信息。
翻译
相关推荐
-
SQL Server 2016新变化:内存中OLTP功能大改进
SQL Server 2016的许多功能得到改进,内存中OLTP(in-memory OLTP)也不例外,包括扩展性、性能以及扩展T-SQL用于使用和管理内存优化表的功能方面。
-
优化T-SQL提升SQL Server数据库性能
本文中提供了八种优化T-SQL代码避免SQL Server数据库性能瓶颈的技巧,我们可以据此优化数据库应用。
-
配置SQL Server数据库恢复模式的两种方法
本文我们讨论了配置SQL Server恢复模式的两种方式,用T-SQL或者SQL Server管理工具都可以修改恢复模式的设置。
-
用T-SQL在SQL Server 2012中创建用户自定义角色
SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。