SOUNDEX (Transact-SQL)

Gibt einen aus vier Zeichen bestehenden (SOUNDEX) Code zur Bewertung der Ähnlichkeit von zwei Zeichenfolgen zurück.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

SOUNDEX ( character_expression )

Argumente

  • character_expression
    Ein alphanumerischer Ausdruck für Zeichendaten. character_expression kann eine Konstante, Variable oder Spalte darstellen.

Rückgabetypen

varchar

Hinweise

SOUNDEX konvertiert eine alphanumerische Zeichenfolge in einen aus vier Zeichen bestehenden Code, um ähnlich klingende Wörter oder Namen zu finden. Bei dem ersten Zeichen des Codes handelt es sich um das erste Zeichen von character_expression, bei dem zweiten bis vierten Zeichen des Codes um Zahlen. Vokale in character_expression werden ignoriert, es sei denn, sie bilden das erste Zeichen der Zeichenfolge.Zeichenfolgenfunktionen können geschachtelt werden.

Beispiele

Das folgende Beispiel zeigt die SOUNDEX-Funktion sowie die verwandte DIFFERENCE-Funktion. Im ersten Beispiel werden die Standard-SOUNDEX-Werte für alle Konsonanten zurückgegeben. Die Rückgabe von SOUNDEX für Smith und Smythe ergibt das gleiche SOUNDEX-Ergebnis, da die Vokale, der Buchstabe y, doppelt vorhandene Buchstaben und der Buchstabe h nicht einbezogen werden.

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

Dies ist das Resultset.

----- ----- 
S530  S530  

(1 row(s) affected)

Die DIFFERENCE-Funktion vergleicht den Unterschied der Werte, die von der SOUNDEX-Funktion zurückgegeben werden. Das folgende Beispiel zeigt zwei Zeichenfolgen, die sich nur in den Vokalen unterscheiden. Der zurückgegebene Wert beträgt 4 (größtmögliche Übereinstimmung).

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

Dies ist das Resultset.

----------- 
4           

(1 row(s) affected)

Im folgenden Beispiel weisen die Zeichenfolgen unterschiedliche Konsonanten auf; die Funktion gibt daher den Wert 2 (geringere Übereinstimmung) zurück.

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

Dies ist das Resultset.

----------- 
2           

(1 row(s) affected)