View a markdown version of this page

DIFFERENCE 函数 - Amazon Redshift

2026 年 6 月 30 日之后,Amazon Redshift 不再支持使用 Python UDF。我们将分阶段开始执行。有关 Python 生命周期终止和迁移选项详情的更多信息,请参阅 2025 年 6 月 30 日发布的博客文章。

DIFFERENCE 函数

DIFFERENCE 函数比较两个字符串的美国 Soundex 代码。该函数返回 INTEGER,以指示 Soundex 代码之间匹配的字符数。

Soundex 代码是一个长度为四个字符的字符串。Soundex 代码表示单词的发音方式,而不是其拼写方式。例如,Smith 和 Smyth 具有相同的 Soundex 代码。

语法

DIFFERENCE(string1, string2)

参数

string1

CHAR 字符串、VARCHAR 字符串或隐式计算为 CHAR 或 VARCHAR 类型的表达式。

string2

CHAR 字符串、VARCHAR 字符串或隐式计算为 CHAR 或 VARCHAR 类型的表达式。

返回类型

INTEGER

DIFFERENCE 函数返回 0–4 之间的一个 INTEGER 值,该值计算两个字符串的美国 Soundex 代码中匹配字符的数量。Soundex 代码具有 4 个字符,因此,当字符串的所有 4 个字符的美国 Soundex 代码值都相同时,DIFFERENCE 函数返回 4。如果两个字符串中有一个为空,则 DIFFERENCE 返回 0。如果两个字符串都不包含有效字符,则此函数返回 1。DIFFERENCE 函数仅转换英文字母小写或大写 ASCII 字符,包括 a–z 和 A–Z。DIFFERENCE 将忽略其他字符。

示例

要比较字符串 % 和 @ 的 Soundex 值,请使用以下示例。因为这两个字符串都不包含有效字符,所以此函数返回 1。

SELECT DIFFERENCE('%', '@'); +------------+ | difference | +------------+ | 1 | +------------+

要比较 Amazon 和一个空字符串的 Soundex 值,请使用以下示例。因为两个字符串中有一个是空的,所以该函数返回 0。

SELECT DIFFERENCE('Amazon', ''); +------------+ | difference | +------------+ | 0 | +------------+

要比较字符串 Amazon 和 Ama 的 Soundex 值,请使用以下示例。因为字符串的 Soundex 值中有 2 个字符是相同的,所以该函数返回 2。

SELECT DIFFERENCE('Amazon', 'Ama'); +------------+ | difference | +------------+ | 2 | +------------+

要比较字符串 Amazon 和 +-*/%Amazon 的 Soundex 值,请使用以下示例。因为字符串的 Soundex 值中所有 4 个字符都是相同的,所以该函数返回 4。请注意,该函数会忽略第二个字符串中的无效字符 +-*/%。

SELECT DIFFERENCE('Amazon', '+-*/%Amazon'); +------------+ | difference | +------------+ | 4 | +------------+

要比较字符串 AC/DC 和 Ay See Dee See 的 Soundex 值,请使用以下示例。因为字符串的 Soundex 值中所有 4 个字符都是相同的,所以该函数返回 4。

SELECT DIFFERENCE('AC/DC', 'Ay See Dee See'); +------------+ | difference | +------------+ | 4 | +------------+