Функция SQL Server DIFFERENCE()

В этом руководстве вы узнаете, как использовать функцию SQL Server DIFFERENCE() для сравнения двух строк и определения их фонетического сходства.

Введение в функцию SQL Server DIFFERENCE()

Функция DIFFERENCE() сравнивает две строки и определяет их фонетическое сходство.

Вот синтаксис функции РАЗНОСТЬ():

DIFFERENCE(string1, string2)

В этом синтаксисе string1 и string2 — это две строки, которые вы хотите сравнить.

Функция РАЗНОСТЬ() возвращает целочисленное значение в диапазоне от 0 до 4:

  • 4: указывает на то, что две строки фонетически очень похожи.
  • 3 указывает на то, что две строки похожи.
  • 2 указывает на то, что две строки в некоторой степени похожи.
  • 1 указывает на то, что две строки не очень похожи.
  • 0 указывает на то, что две строки совершенно различны.

Функция DIFFERENCE() полезна, когда требуется выполнить нечеткое сопоставление строк или поиск на основе звучания, а не точных совпадений.

Функция DIFFERENCE() возвращает NULL, если хотя бы одна из входных строк равна NULL.

Примеры функции DIFFERENCE() SQL Server

Давайте рассмотрим несколько примеров использования функции РАЗНОСТЬ().

1) Пример базовой функции РАЗНОСТЬ()

В следующем примере функция DIFFERENCE() используется для сравнения двух строк «hello» и «hallo», если их фонетика схожа:

SELECT DIFFERENCE('hello', 'hallo') AS SimilarityScore;

Выход:

SimilarityScore
---------------
4

В этом примере строки «hello» и «hallo» имеют оценку сходства 4, что указывает на то, что они очень похожи фонетически.

2) Использование функции DIFFERENCE() в предложении WHERE

Мы будем использовать таблицу sales.customers из примера базы данных :

клиенты

В следующем примере функция DIFFERENCE() используется для поиска клиентов, чьи фамилии имеют фонетическое сходство со словом «Tod»:

SELECT 
  first_name, 
  last_name 
FROM 
  sales.customers 
WHERE 
  DIFFERENCE(last_name, 'Tod') = 4;

Выход:

Функция SQL Server DIFFERENCE()

3) Использование функции DIFFERENCE() с NULL

Функция DIFFERENCE() возвращает NULL, если любая из входных строк равна NULL. Для правильной обработки NULL можно использовать функциюISNULL(). Например:

SELECT DIFFERENCE(ISNULL('Hi', ''), ISNULL(NULL, '')) AS SimilarityScore;

Выход:

SimilarityScore
---------------
0

Краткое содержание

  • Используйте функцию SQL Server DIFFERENCE() для сравнения двух строк и определения их фонетического сходства.
Мирослав С.

Автор статей, ИБ-специалист