SQL Server (Transact-SQL) DIFFERENCE() 函数返回一个整数值,测量 SOUNDEX() 两个不同字符表达式的值。
该值测量 SOUNDEX 值匹配的程度,范围为 0 到 4。值为 0 表示 SOUNDEX 值之间的相似性较弱或没有相似性; 4 表示 SOUNDEX 值非常相似,甚至完全相同。
SOUNDEX() 函数将字母数字字符串转换为四字符代码,该代码基于字符串用英语发音时的发音。代码的第一个字符是str的第一个字符,转换为大写。代码的第二个到第四个字符是代表 str 中字母的数字。字母 A、E、I、O、U、H、W 和 Y 将被忽略,除非它们是 str 的第一个字母。如果需要生成四字符代码,则会在末尾添加零。
可以比较不同字符串的 SOUNDEX 代码,以了解这些字符串在发音时听起来有多相似。 DIFFERENCE() 函数对两个字符串执行 SOUNDEX,并返回一个整数,表示这些字符串的 SOUNDEX 代码的相似程度。
语法
DIFFERENCE(str1, str2)
参数
str1 | 必填。 指定要比较其 soundex 字符串的第一个字符串。 |
str2 | 必需。 指定要比较其 soundex 字符串的第二个字符串。 |
返回值
返回测量两个不同字符表达式的 SOUNDEX() 值之间的差异。
示例 1:
下面的示例显示了DIFFERENCE()函数的用法。
SELECT DIFFERENCE('Hello', 'Hallo');
Result: 4
SELECT DIFFERENCE('Principal', 'Principle');
Result: 4
SELECT DIFFERENCE('To', 'Too');
Result: 4
SELECT DIFFERENCE('Smith', 'Smithing');
Result: 3
示例 2:
考虑名为Sample的数据库表,包含以下记录:
Data | Word1 | Word2 |
---|---|---|
Data1 | Here | Heir |
Data3 | Smith | Smithing |
Data4 | Smythe | Smythy |
Data5 | To | Two |
Data6 | Too | Two |
Data7 | Two | Three |
以下查询可用于获取Word1列的记录时SOUNDEX代码的差异和 Word2 列进行比较。
SELECT *, DIFFERENCE(Word1, Word2) AS DIFFERENCE_Value FROM Sample;
这将产生类似于以下内容的结果:
Data | Word1 | Word2 | DIFFERENCE_Value |
---|---|---|---|
Data1 | Here | Heir | 4 |
Data3 | Smith | Smithing | 3 |
Data4 | Smythe | Smythy | 4 |
Data5 | To | Two | 4 |
Data6 | Too | Two | 4 |
Data7 | Two | Three | 3 |