SOUNDEX: Cómo comparar cadenas de caracteres fonéticamente

Cómo:

Idiomas disponibles: informes, Maintain

La función SOUNDEX realiza un análisis fonético de una cadena de caracteres, independientemente de la ortografía. Esta función convierte las cadenas de caracteres en cuatro códigos de carácter. El primer carácter debe ser el primero de la cadena. Los tres últimos caracteres representan los próximos tres sonidos significativos de la cadena de origen.

Para efectuar una búsqueda fonética siga estos pasos:

  1. Use SOUNDEX para traducir valores de datos del campo que está buscando, a los códigos fonéticos.
  2. Use SOUNDEX para traducir una estimación aproximada de la cadena de caracteres de destino, al código fonético. Recuerde que sólo necesita la ortografía aproximada de la cadena, aunque es obligatorio que la primera letra sea correcta.
  3. Use criterios WHERE o IF para comparar los campos temporales creados en el paso 1 con el campo temporal creado en el paso 2.

Principio de página

x
Sintaxis: Cómo Comparar cadenas de caracteres fonéticamente
SOUNDEX(length, source_string, output)

donde:

length

Alfanumérico

Es el número de caracteres de source_string, o un campo que contenga la longitud. Puede tratarse de un número entre comillas simples o de un campo que contenga el número. El número debe estar comprendido entre 01 y 99 y expresado en dos dígitos (por ejemplo, 01); si el número es superior a 99 la función devuelve asteriscos (*) como salida.

source_string

Alfanumérico

Es la cadena que se va a analizar, entre comillas simples, o un campo o variable que contiene la cadena de caracteres.

output

Alfanumérico

Es el nombre del campo que contiene el resultado, o el formato del valor de salida puesto entre comillas solas.



Ejemplo: Cómo comparar cadenas de caracteres fonéticamente

La siguiente solicitud crea tres campos:

Los criterios WHERE seleccionan el apellido que coincida con su aproximación.

DEFINE FILE EMPLOYEE
PHON_NAME/A4 = SOUNDEX('15', LAST_NAME, PHON_NAME);
PHON_COY/A4 WITH LAST_NAME = SOUNDEX('15', 'MICOY', PHON_COY);
PHON_MATCH/A3 = IF PHON_NAME IS PHON_COY THEN 'YES' ELSE 'NO';
END
TABLE FILE EMPLOYEE
PRINT LAST_NAME
IF PHON_MATCH IS 'YES'
END

La salida es:

LAST_NAME
---------
MCCOY

WebFOCUS