How to: |
PHONETIC calculates a phonetic key for a string, or a null value on failure. Phonetic keys are useful for grouping alphanumeric values, such as names, that may have spelling variations. This is done by generating an index number that will be the same for the variations of the same name based on pronunciation. One of two phonetic algorithms can be used for indexing, Metaphone and Soundex. Metaphone is the default algorithm, except on z/OS where the default is Soundex.
You can set the algorithm to use with the following command.
SET PHONETIC_ALGORITHM = {METAPHONE|SOUNDEX}
Most phonetic algorithms were developed for use with the English language. Therefore, applying the rules to words in other languages may not give a meaningful result.
Metaphone is suitable for use with most English words, not just names. Metaphone algorithms are the basis for many popular spell checkers.
Note: Metaphone is not optimized in generated SQL. Therefore, if you need to optimize the request for an SQL DBMS, the SOUNDEX setting should be used.
Soundex is a legacy phonetic algorithm for indexing names by sound, as pronounced in English.
PHONETIC(string)
where:
Alphanumeric
Is a string for which to create the key. A null value will be returned on failure.
The following request changes the spelling of the last name for MARY SMITH to SMYTHE and generates a phonetic key for each last name.
DEFINE FILE EMPLOYEE LAST_NAME2/A16 = IF LAST_NAME EQ 'SMITH' AND FIRST_NAME EQ 'MARY' THEN 'SMYTHE' ELSE LAST_NAME; PKEY/A10 = PHONETIC(LAST_NAME2); END TABLE FILE EMPLOYEE PRINT FIRST_NAME LAST_NAME2 BY PKEY ON TABLE SET PAGE NOLEAD ON TABLE SET STYLE * GRID=OFF,$ ENDSTYLE END
The output is shown in the following image. Note that the two spellings for SMITH are assigned the same index number.