Soundex es un algoritmo fonético para indexar nombres por sonido, como se pronuncia en inglés. Fue desarrollado y patentado en 1918 y 1922.
Una de las funciones disponibles en SQL Server es SOUNDEX()
función, que devuelve el código Soundex para una cadena determinada.
Sintaxis
La sintaxis es así:
SOUNDEX ( character_expression )
Donde character_expression
es la palabra o cadena para la que desea el código Soundex. Puede ser una constante, una variable o una columna.
El SOUNDEX()
La función es sensible a la intercalación y las funciones de cadena se pueden anidar.
El Código Soundex
Como se mencionó, el SOUNDEX()
La función devuelve el código Soundex para la cadena dada. El código Soundex es un código de cuatro caracteres que se basa en cómo suena la cuerda cuando se habla. Aquí hay un ejemplo de un código Soundex:
S600
Así es como se construye un código Soundex:
- El primer carácter del código es el primer carácter de la cadena, convertido a mayúsculas. Entonces, en el ejemplo anterior, sabemos que la cadena comienza con la letra S (ya sea en minúsculas o en mayúsculas).
- Los caracteres segundo a cuarto del código son números que representan las letras de la expresión.
- Las letras A, E, I, O, U, H, W e Y se ignoran a menos que sean la primera letra de la cadena.
- Se agregan ceros al final si es necesario para generar un código de cuatro caracteres.
Ejemplo
Aquí hay un ejemplo de cómo recuperar la cadena Soundex de una cadena:
SELECT SOUNDEX('Sure');
Resultado:
S600
Entonces podemos ver que la palabra Sure
tiene un código Soundex de S600
.
Ejemplo de dos palabras coincidentes
Este es un ejemplo de dos palabras que comparten el mismo código Soundex (porque suenan igual):
SELECT SOUNDEX('Sure') AS Sure, SOUNDEX('Shore') AS Shore;
Resultado:
Sure Shore ---- ----- S600 S600
Estos son algunos ejemplos de coincidencias más exactas:
SELECT SOUNDEX('Dam') AS Dam, SOUNDEX('Damn') AS Damn, SOUNDEX('Too') AS Too, SOUNDEX('Two') AS Two;
Resultado:
Dam Damn Too Two ---- ---- ---- ---- D500 D500 T000 T000
Ejemplo de palabras que no coinciden
Este es un ejemplo de dos palabras que no suenan igual y, por lo tanto, tienen diferentes códigos Soundex:
SELECT SOUNDEX('Water') AS Water, SOUNDEX('Coffee') AS Coffee;
Resultado:
Water Coffee ----- ------ W360 C100
Palabras con diferente ortografía
Algunas palabras tienen diferentes ortografías según el país del que seas. Tales palabras compartirán el mismo código Soundex:
SELECT SOUNDEX('Flavor') AS 'Flavor', SOUNDEX('Flavour') AS 'Flavour';
Resultado:
Flavor Flavour ------ ------- F416 F416
Mismo sonido, diferente código Soundex
A veces, dos palabras suenan igual, pero tienen diferentes códigos Soundex. La razón más común de esto es que comienzan con una letra diferente (uno usa una letra muda). Como se mencionó, el código Soundex comienza con la primera letra de la cadena (convertida a mayúscula). Por lo tanto, si tiene dos palabras que se pronuncian exactamente igual, pero comienzan con una letra diferente, tendrán un código Soundex diferente.
Estos son algunos ejemplos:
SELECT SOUNDEX('Hole') AS 'Hole', SOUNDEX('Whole') AS 'Whole', SOUNDEX('Our') AS Our, SOUNDEX('Hour') AS Hour;
Resultado:
Hole Whole Our Hour ---- ----- ---- ---- H400 W400 O600 H600
Los pares en este ejemplo tienen diferentes códigos Soundex únicamente porque su primera letra es diferente.