В этом руководстве вы узнаете, как использовать функцию 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;
Выход:
3) Использование функции DIFFERENCE() с NULL
Функция DIFFERENCE() возвращает NULL, если любая из входных строк равна NULL. Для правильной обработки NULL можно использовать функциюISNULL(). Например:
SELECT DIFFERENCE(ISNULL('Hi', ''), ISNULL(NULL, '')) AS SimilarityScore;
Выход:
SimilarityScore --------------- 0
Краткое содержание
- Используйте функцию SQL Server DIFFERENCE() для сравнения двух строк и определения их фонетического сходства.