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 .