SOUNDEX (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt einen aus vier Zeichen bestehenden (SOUNDEX) Code zur Bewertung der Ähnlichkeit von zwei Zeichenfolgen zurück.
Transact-SQL-Syntaxkonventionen
Syntax
SOUNDEX ( character_expression )
Argumente
character_expression
Ein alphanumerischer Ausdruck der Zeichendaten. character_expression kann eine Konstante, Variable oder Spalte sein.
Rückgabetypen
varchar
Bemerkungen
SOUNDEX konvertiert eine alphanumerische Zeichenfolge in einen vierstelligen Code, der davon abhängig ist, wie sich eine Zeichenfolge anhört, wenn diese in englischer Sprache ausgesprochen wird. Beim ersten Zeichen des Codes handelt es sich um das erste Zeichen von character_expression, umgewandelt in Großbuchstaben. Das zweite bis vierte Zeichen des Codes sind Zahlen, die die Buchstaben im Ausdruck darstellen. Die Buchstaben A, E, I, O, U, STD, W und Y werden ignoriert, es sei denn, sie entsprechen dem ersten Buchstaben der Zeichenfolge. Nullen werden ggf. am Ende hinzugefügt, um einen vier Zeichen langen Code zu erzeugen. Weitere Informationen zum SOUNDEX-Code finden Sie unter The Soundex Indexing System (Das Soundex-Indizierungssystem).
SOUNDEX-Codes aus verschiedenen Zeichenfolgen können verglichen werden, um Ähnlichkeiten zwischen gesprochenen Zeichenfolgen festzustellen. Die DIFFERENCE-Funktion führt eine SOUNDEX-Funktion für zwei Zeichenfolgen aus und gibt eine ganze Zahl zurück, die die Ähnlichkeit der SOUNDEX-Codes für diese Zeichenfolgen darstellt.
SOUNDEX ist sortierungsabhängig. Zeichenfolgenfunktionen können geschachtelt werden.
SOUNDEX-Kompatibilität
In früheren Versionen von SQL Server wurde von der SOUNDEX-Funktion eine Teilmenge der SOUNDEX-Regeln angewendet. Unter dem Datenbank-Kompatibilitätsgrad 110 oder höher wendet SQL Server einen vollständigeren Regelsatz an.
Möglicherweise sind die Indizes, Heaps oder CHECK-Einschränkungen, die die SOUNDEX-Funktion verwenden, nach dem Upgrade auf Kompatibilitätsgrad 110 oder höher erneut zu erstellen.
Ein Heap, der eine persistierte berechnete Spalte enthält, die mit SOUNDEX definiert wurde, kann erst abgefragt werden, wenn der Heap durch Ausführen der
ALTER TABLE <table> REBUILD
-Anweisung neu erstellt wurde.Mit SOUNDEX definierte CHECK-Einschränkungen werden beim Upgrade deaktiviert. Führen Sie zum Aktivieren der Einschränkung die
ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL
-Anweisung aus.Indizes (einschließlich indizierter Sichten), die eine persistierte berechnete Spalte enthalten, die mit SOUNDEX definiert wurde, können erst abgefragt werden, wenn der Index durch Ausführen der
ALTER INDEX ALL ON <object> REBUILD
-Anweisung neu erstellt wurde.
Beispiele
Das folgende Beispiel zeigt die SOUNDEX-Funktion sowie die verwandte DIFFERENCE-Funktion. Im ersten Beispiel werden die standardmäßigen SOUNDEX
-Werte für alle Konsonanten zurückgegeben. Die Rückgabe von SOUNDEX
für Smith
und Smythe
ergibt das gleiche SOUNDEX-Ergebnis, da alle Vokale, der Buchstabe y
, doppelt vorhandene Buchstaben und der Buchstabe h
nicht einbezogen werden.
-- Using SOUNDEX
SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe');
Hier sehen Sie das Ergebnis. Gültig für eine Latin1_General-Sortierung.
S530 S530
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
Hier sehen Sie das Ergebnis. Gültig für eine Latin1_General-Sortierung.
4
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
Hier sehen Sie das Ergebnis. Gültig für eine Latin1_General-Sortierung.
2
Weitere Informationen
DIFFERENCE (Transact-SQL)
Zeichenfolgenfunktionen (Transact-SQL)
ALTER DATABASE-Kompatibilitätsgrad (Transact-SQL)