Freigeben über


SOUNDEX (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse 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, Wund 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 mit SOUNDEX 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 hnicht 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