Questo articolo ha lo scopo di aiutarti a comprendere la DIFFERENCE()
function, che è una funzione T-SQL disponibile in SQL Server, Azure e così via
La chiave per comprendere DIFFERENCE()
la funzione è capire come funziona Soundex (o, nel contesto di SQL Server, come SOUNDEX()
funzione funziona). Questo perché DIFFERENCE()
La funzione restituisce la differenza tra i valori Soundex tra due stringhe.
Un valore Soundex è lungo quattro caratteri. Se due parole suonano allo stesso modo, condivideranno lo stesso valore Soundex di quattro caratteri. Se suonano simili (ma non uguali), i loro valori Soundex potrebbero condividere alcuni caratteri ma non tutti. Ad esempio, i loro valori Soundex potrebbero avere due caratteri uguali e due diversi. Se due parole suonano completamente diverse, nessuno dei caratteri nei rispettivi valori Soundex sarà lo stesso.
Il DIFFERENCE()
la funzione restituisce un valore compreso tra 0
tramite 4
. Questo valore rappresenta il numero di caratteri nei valori Soundex che sono gli stessi. 0
indica debole o nessuna somiglianza e 4
indica una forte somiglianza o gli stessi valori.
Sintassi
Innanzitutto, ecco la sintassi:
DIFFERENCE ( character_expression , character_expression )
Come indicato, questa funzione accetta due argomenti. I codici Soundex di ogni espressione di carattere vengono confrontati e viene restituito il risultato.
Esempio – Corrispondenza esatta
Ecco un esempio di cosa succede quando entrambe le corde suonano allo stesso modo (cioè hanno lo stesso valore Soundex):
SELECT DIFFERENCE('Two','Too');
Risultato:
4
Il risultato è 4
, che è il valore più alto possibile. Ciò significa che c'è una forte somiglianza tra le due corde (per quanto riguarda i loro valori Soundex).
Se ti stai chiedendo dove si trova il numero 4
proveniva da, dai un'occhiata al seguente codice:
SELECT SOUNDEX('Two') AS Two, SOUNDEX('Too') AS Too;
Risultato:
Two Too ---- ---- T000 T000
In questo esempio il SOUNDEX()
viene utilizzata per restituire i codici Soundex per ogni parola. A quanto pare, entrambe le parole hanno gli stessi codici Soundex (T000
). E poiché tutti e quattro i caratteri dei codici Soundex sono uguali, DIFFERENCE()
restituisce 4
.
Esempio – Bassa somiglianza
Ecco un esempio di come funziona quando le stringhe hanno una somiglianza inferiore:
SELECT DIFFERENCE('Tea','Coffee');
Risultato:
2
Il risultato è 2
, che è nel mezzo. Le corde non suonano esattamente allo stesso modo, ma hanno alcune somiglianze.
E come nell'esempio precedente, possiamo vedere da dove proviene questo risultato eseguendo il codice seguente:
SELECT SOUNDEX('Tea') AS Tea, SOUNDEX('Coffee') AS Coffee;
Risultato:
Tea Coffee ---- ------ T000 C100
Quindi possiamo vedere che solo due dei caratteri Soundex sono gli stessi tra queste parole. Pertanto il DIFFERENCE()
il risultato è 2
.
Esempio:nessuna somiglianza
Ecco un esempio di come funziona quando le stringhe hanno una somiglianza debole o assente:
SELECT DIFFERENCE('Tree','Captivated');
Risultato:
0
Il risultato è 0
, il che significa che le stringhe hanno una somiglianza molto debole o assente.
Ed ecco i codici Soundex per queste due parole:
SELECT SOUNDEX('Tree') AS Tree, SOUNDEX('Captivated') AS Captivated;
Risultato:
Tree Captivated ---- ---------- T600 C131
Quindi in questo caso, nessuno dei caratteri è lo stesso, quindi un DIFFERENCE()
risultato di 0
.