SQL Server 函数

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的数据库表,包含以下记录:

DataWord1Word2
Data1HereHeir
Data3SmithSmithing
Data4SmytheSmythy
Data5ToTwo
Data6TooTwo
Data7TwoThree

以下查询可用于获取Word1列的记录时SOUNDEX代码的差异和 Word2 列进行比较。

SELECT *, DIFFERENCE(Word1, Word2) AS DIFFERENCE_Value FROM Sample;

这将产生类似于以下内容的结果:

DataWord1Word2DIFFERENCE_Value
Data1HereHeir4
Data3SmithSmithing3
Data4SmytheSmythy4
Data5ToTwo4
Data6TooTwo4
Data7TwoThree3