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 vierstelligen (SOUNDEX
) -Code zurück, um die Ähnlichkeit zweier Zeichenfolgen auszuwerten.
Transact-SQL-Syntaxkonventionen
Syntax
SOUNDEX ( character_expression )
Argumente
character_expression
Ein alphanumerischer Ausdruck von Zeichendaten. character_expression kann eine Konstante, Variable oder Spalte sein.
Rückgabetypen
varchar
Bemerkungen
SOUNDEX
konvertiert eine alphanumerische Zeichenfolge in einen vierstelligen Code, der darauf basiert, wie die Zeichenfolge klingt, wenn sie in Englisch gesprochen 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
, H
, W
und Y
werden ignoriert, es sei denn, sie sind der erste Buchstabe 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.
SOUNDEX
Codes aus verschiedenen Zeichenfolgen können verglichen werden, um zu sehen, wie ähnlich die Zeichenfolgen klingen, wenn gesprochen wird. Die DIFFERENCE()-Funktion führt eine SOUNDEX
für zwei Zeichenfolgen aus und gibt eine ganze Zahl zurück, die angibt, wie ähnlich die SOUNDEX
Codes für diese Zeichenfolgen sind.
SOUNDEX
ist die Sortierung vertraulich. Zeichenfolgenfunktionen können geschachtelt werden.
SOUNDEX-Kompatibilität
In früheren Versionen von SQL Server hat die 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.
Nach dem Upgrade auf Kompatibilitätsebene 110 oder höher müssen Sie möglicherweise die Indizes, Heaps oder CHECK
Einschränkungen neu erstellen, die die SOUNDEX
-Funktion verwenden.
Ein Heap, der eine gespeicherte berechnete Spalte enthält, die mit
SOUNDEX
definiert ist, kann erst abgefragt werden, wenn der Heap neu erstellt wird, indem die folgende Anweisung ausgeführt wird:ALTER TABLE <table> REBUILD;
CHECK
einschränkungen, die mitSOUNDEX
definiert sind, werden beim Upgrade deaktiviert. Führen Sie zum Aktivieren der Einschränkung die folgende Anweisung aus:ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
Indizes (einschließlich indizierter Ansichten), die eine mit
SOUNDEX
definierte permanente berechnete Spalte enthalten, können erst abgefragt werden, wenn der Index neu erstellt wird, indem die folgende Anweisung ausgeführt wird:ALTER INDEX ALL ON <object> REBUILD;
Beispiele
Ein. Verwenden von SOUNDEX
Das folgende Beispiel zeigt die SOUNDEX
-Funktion und die zugehörige DIFFERENCE
-Funktion. Im ersten Beispiel werden die standardmäßigen SOUNDEX
-Werte für alle Konsonanten zurückgegeben. Beim Zurückgeben der SOUNDEX
für Smith
und Smythe
wird dasselbe SOUNDEX
Ergebnis zurückgegeben, da alle Vokale, der Buchstabe y
, doppelte Buchstaben und der Buchstabe h
nicht enthalten sind.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
Hier sehen Sie das Ergebnis. Gültig für eine Latin1_General
Sortierung.
S530 S530
B. Differenz verwenden
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).
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