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
преобразует буквенно-цифровые строки в четырехзначный код, основанный на том, как строка звучит при разговоре на английском языке. Первый символ кода является первым символом character_expression, преобразованным в верхний регистр. Второй, третий и четвертый символы кода являются числами, которые обозначают буквы в выражении. Буквы A
, E
, I
, O
, U
, H
, W
и Y
игнорируются, если только они не являются первой буквой строки. Нули добавляются в конце при необходимости производить четырехсимвольный код. Дополнительные сведения о коде SOUNDEX
см. в разделе System Soundex Indexing System.
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;
Примеры
A. Использование SOUNDEX
В следующем примере показана функция SOUNDEX
и связанная DIFFERENCE
. В первом примере стандартные значения SOUNDEX
возвращаются для всех согласных. Возврат SOUNDEX
для Smith
и Smythe
возвращает тот же результат SOUNDEX
, так как все гласные, буквы y
, двойные буквы и буквы h
, не включаются.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
Вот результирующий набор. Допустимо для сортировки Latin1_General
.
S530 S530
B. Использование DIFFERENCE
Функция DIFFERENCE
производит сравнение результатов шаблонов SOUNDEX
. В следующем примере показаны две строки, различающиеся только по гласной. Возвращенное значение 4
означает максимальное сходство.
SELECT DIFFERENCE('Smithers', 'Smythers');
GO
Вот результирующий набор. Допустимо для сортировки Latin1_General
.
4
В следующем примере строки различаются в согласных, следовательно, возвращенное значение 2
указывает на большую степень различия.
SELECT DIFFERENCE('Anothers', 'Brothers');
GO
Вот результирующий набор. Допустимо для сортировки Latin1_General
.
2