funzione word_find()
La funzione 'word_find() cerca nel testo varchar di input la prima parola che corrisponde a una parola del parametro di input entro la tolleranza specificata.
Sintassi
int4 = word_find(varchar word, varchar text, int1 difference [, int
algorithm1 [, int algorithm2 [, int algorithm3]]]);
Il valore 'word specifica la parola che si vuole cercare in 'text.
Il valore 'text specifica il testo varchar da cercare.
Il valore 'difference specifica la tolleranza che ogni algoritmo specificato utilizza per la ricerca di una corrispondenza.
algorithm specificato (fino a tre) viene utilizzato per trovare una corrispondenza entro la tolleranza definita dal valore " difference. È possibile specificare i seguenti valori per il valore " algorithm:- 0
- Soundex-Miracode.
- 1
- Soundex semplificato.
- 2
- Soundex-SQLServer.
- 3
- Doppia metafora.
- 10
- Levenshtein.
- 11
- Damerau-Levenshtein.
- 100
- Porter.
- Prima della versione 1.6 del toolkitIBM® SQL Extensions, se non si specificava un valore di algoritmo, la funzione utilizzava un valore predefinito di 3 (Double Metaphone) come algoritmo di corrispondenza. Se sono stati specificati meno di tre valori dell'algoritmo, anche i valori non specificati sono stati impostati per default su Doppio metafono.
- Nel toolkitIBM SQL Extensions versione 1.6 e successive, se non si specifica un valore di algoritmo o se l'unico valore di algoritmo specificato è un algoritmo di stemming, la funzione esegue una corrispondenza esatta. Inoltre, se si specificano meno di tre valori di algoritmo, la corrispondenza utilizza solo gli algoritmi specificati.
Risultati
La funzione restituisce la posizione del primo carattere della stringa corrispondente.
Esempio
select word_find('swimming', 'she swims in the competition in red
swimwear', 0, 11, 100);
WORD_FIND
-----------
5
(1 row)
select word_find('swimming', 'she swims in the competition in red
wsimwear', 1, 11);
WORD_FIND
-----------
0
(1 row)
select word_find('SwimweaR ', 'she swims in the competition in red
swimwear', 0, 11);
WORD_FIND
-----------
0
(1 row)