SOUNDEX (Transact-SQL)
Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft Fabric
Restituisce un codice a quattro caratteri (SOUNDEX
) per valutare la somiglianza di due stringhe.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
SOUNDEX ( character_expression )
Argomenti
character_expression
Espressione alfanumerica di dati di tipo carattere. character_expression può essere una costante, una variabile o una colonna.
Tipi restituiti
varchar
Osservazioni:
SOUNDEX
converte una stringa alfanumerica in un codice a quattro caratteri basato sul suono della stringa quando viene parlato in inglese. Il primo carattere del codice è il primo carattere di character_expression, convertito in maiuscolo. I caratteri compresi tra il secondo e il quarto del codice sono numeri che rappresentano le lettere dell'espressione. Le lettere A
, E
, I
, O
, U
, H
, W
e Y
vengono ignorate a meno che non siano la prima lettera della stringa. Se necessario per generare un codice di quattro caratteri, vengono aggiunti gli zeri finali. Per altre informazioni sul codice di SOUNDEX
, vedere The Soundex Indexing System.
SOUNDEX
codici di stringhe diverse possono essere confrontati per vedere come le stringhe sono simili quando pronunciate. La funzione
SOUNDEX
è sensibile alle regole di confronto. Le funzioni stringa possono essere nidificate.
Compatibilità SOUNDEX
Nelle versioni precedenti di SQL Server, la funzione SOUNDEX
ha applicato un subset delle regole di SOUNDEX
. Con il livello di compatibilità del database 110 o superiore, tramite SQL Server viene applicato un set più completo di regole.
Dopo l'aggiornamento al livello di compatibilità 110 o superiore, potrebbe essere necessario ricompilare gli indici, gli heap o i vincoli CHECK
che usano la funzione SOUNDEX
.
Un heap che contiene una colonna calcolata persistente definita con
SOUNDEX
non può essere eseguita una query finché l'heap non viene ricompilato eseguendo l'istruzione seguente:ALTER TABLE <table> REBUILD;
CHECK
vincoli definiti conSOUNDEX
vengono disabilitati al momento dell'aggiornamento. Per abilitare il vincolo, eseguire l'istruzione seguente:ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
Gli indici (incluse le viste indicizzate) che contengono una colonna calcolata persistente definita con
SOUNDEX
non possono essere sottoposti a query finché l'indice non viene ricompilato eseguendo l'istruzione seguente:ALTER INDEX ALL ON <object> REBUILD;
Esempi
Un. Usare SOUNDEX
L'esempio seguente illustra la funzione SOUNDEX
e la funzione DIFFERENCE
correlata. Nel primo esempio vengono restituiti i valori SOUNDEX
standard per tutte le consonanti. La restituzione del SOUNDEX
per Smith
e Smythe
restituisce lo stesso risultato SOUNDEX
perché tutte le vocali, la lettera y
, le lettere doppie e la lettera h
, non sono incluse.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
Il set di risultati è il seguente. Valido per le regole di confronto Latin1_General
.
S530 S530
B. Usare DIFFERENCE
La funzione DIFFERENCE
valuta la differenza tra i risultati ottenuti con il modello SOUNDEX
. Nell'esempio seguente sono illustrate due stringhe che si differenziano in relazione alle vocali. Il valore restituito è 4
(differenza minima).
SELECT DIFFERENCE('Smithers', 'Smythers');
GO
Il set di risultati è il seguente. Valido per le regole di confronto Latin1_General
.
4
Nell'esempio seguente le stringhe sono diverse a livello consonantico. La differenza restituita sarà pertanto 2
, vale a dire la differenza maggiore.
SELECT DIFFERENCE('Anothers', 'Brothers');
GO
Il set di risultati è il seguente. Valido per le regole di confronto Latin1_General
.
2