Поделиться через


SOUNDEX (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric

Возвращает четырехсимвольный код (SOUNDEX) для оценки степени сходства двух строк.

Соглашения о синтаксисе Transact-SQL

Синтаксис

SOUNDEX ( character_expression )  

Аргументы

character_expression
Буквенно-цифровое выражение символьных данных. character_expression может быть константой, переменной или столбцом.

Типы возвращаемых данных

varchar

Замечания

Функция SOUNDEX преобразует алфавитно-цифровую строку в 4-символьный код, чье значение зависит от способа звучания строки при произношении на английском языке. Первый символ кода является первым символом character_expression, преобразованным в верхний регистр. Второй, третий и четвертый символы кода являются числами, которые обозначают буквы в выражении. Буквы A, E, I, O, U, H, W и Y игнорируются, если только не являются первой буквой строки. Нули добавляются в конце при необходимости производить четырехсимвольный код. Дополнительные сведения о коде SOUNDEX см. в статье Система индексирования Soundex.

Коды SOUNDEX из разных строк можно сравнивать, чтобы узнать, насколько похоже звучат строки при произношении. Функция DIFFERENCE выполняет SOUNDEX по двум строкам и возвращает целое число, представляющее сходство кодов SOUNDEX для этих строк.

Функция SOUNDEX учитывает параметры сортировки. Строковые функции могут быть вложенными.

Совместимость SOUNDEX

В предыдущих версиях SQL Server функция SOUNDEX применила подмножество правил SOUNDEX. В соответствии с уровнем совместимости базы данных 110 или более поздней версии SQL Server применяет более полный набор правил.

После обновления до уровня совместимости 110 или более высокого, возможно, придется перестроить индексы, кучи или ограничения CHECK, в которых используется функция SOUNDEX.

  • Кучу, которая содержит материализованный вычисляемый столбец, определенный функцией SOUNDEX, нельзя запрашивать, пока она не будет перестроена с помощью инструкции ALTER TABLE <table> REBUILD.

  • При повышении уровня совместимости ограничения CHECK, определенные функцией SOUNDEX, отключаются. Чтобы включить ограничение, выполните инструкцию ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL.

  • Запросы к индексам (в том числе индексированным представлениям), которые содержат материализованный вычисляемый столбец, определенный функцией SOUNDEX, можно выполнять только после их перестроения с помощью инструкции ALTER INDEX ALL ON <object> REBUILD.

Примеры

Следующий пример демонстрирует использование функции SOUNDEX и связанной с ней функции DIFFERENCE. В первом примере стандартные значения SOUNDEX возвращаются для всех согласных. Возвращение функции SOUNDEX для Smith и Smythe выдает одинаковый результат SOUNDEX, поскольку все гласные, буквы y и h, а также удвоенные буквы не включаются.

-- Using SOUNDEX  
SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe');  

Вот результирующий набор. Допустимо для Latin1_General сортировки.

S530  S530    

Функция DIFFERENCE производит сравнение результатов шаблонов SOUNDEX. В следующем примере показаны две строки, различающиеся только по гласной. Возвращенное значение 4 означает максимальное сходство.

-- Using DIFFERENCE  
SELECT DIFFERENCE('Smithers', 'Smythers');  
GO  

Вот результирующий набор. Допустимо для Latin1_General сортировки.

4             

В следующем примере строки различаются в согласных, следовательно, возвращенное значение 2 указывает на большую степень различия.

SELECT DIFFERENCE('Anothers', 'Brothers');  
GO  

Вот результирующий набор. Допустимо для Latin1_General сортировки.

2             

См. также

DIFFERENCE (Transact-SQL)
Строковые функции (Transact-SQL)
Уровень совместимости инструкции ALTER DATABASE (Transact-SQL)