Restituisce true se la stringa corrisponde all’espressione regolare. Questa funzione è simile al predicato LIKE, tranne che utilizza espressioni regolari piuttosto che la semplice corrispondenza dei caratteri jolly.
la Sintassi
REGEXP_LIKE( string, modello )
Parametri
string |
|
||||||||||||
pattern |
Una stringa contenente l’espressione regolare da abbinare alla stringa. La sintassi dell’espressione regolare è compatibile con la sintassi dell’espressione regolare Perl 5. Vedere la documentazione delle espressioni regolari Perl per i dettagli. |
||||||||||||
modifiers |
Uno o più caratteri flag di modificare il modo in cui l’espressione regolare rileva nella stringa:
|
Note
Questa funzione funziona su stringhe UTF-8 utilizzando la locale predefinita, anche se la locale è stata impostata su qualcos’altro.
Se si esegue il porting di una query di espressioni regolari da un database Oracle, ricordare che Oracle considera una stringa di lunghezza zero equivalente a NULL, mentre Vertica no.
Esempi
Questo esempio crea una tabella contenente diverse stringhe per dimostrare le espressioni regolari.
Selezionare tutti i record della tabella che contengono la lettera “a”.
=> SELEZIONARE v t DOVE REGEXP_LIKE(v,'a'); v ------ Aaa Aaa abc abc1(4 righe)
Selezionare tutte le righe nella tabella che iniziano con la lettera “a.”
=> SELEZIONA v DA t DOVE REGEXP_LIKE(v,'^a'); v ------ aaa abc abc1(3 righe)
Seleziona tutte le righe che contengono la sottostringa “aa.”
=> SELEZIONA v DA t DOVE REGEXP_LIKE(v,'aa'); v ----- Aaa aaa(2 righe)
Seleziona tutte le righe che contengono una cifra.
= > SELEZIONA v DA t DOVE REGEXP_LIKE(v, '\ d'); v ------ 123 abc1 (2 righe)
Seleziona tutte le righe che contengono la sottostringa “aaa.”
=> SELEZIONA v DA t DOVE REGEXP_LIKE(v,'aaa'); v ----- aaa(1 riga)
Seleziona tutte le righe che contengono la sottostringa “aaa” usando la corrispondenza senza maiuscolo / minuscolo.
=> SELEZIONARE v t DOVE REGEXP_LIKE(v,'aaa', 'i'); v ----- Aaa Aaa(2 righe)
Selezionare le righe che contengono la sottostringa “a b c”.
=> SELEZIONARE v t DOVE REGEXP_LIKE(v,'a b c'); v - - - (0 righe)
Selezionare le righe che contengono la sottostringa “a b c” ignorando lo spazio all’interno dell’espressione regolare.
=> SELEZIONA v DA t DOVE REGEXP_LIKE(v,'a b c','x'); v ------ abc abc1(2 righe)
Aggiungi righe multilinea per dimostrare usando il modificatore “m”.
Selezionare le righe che iniziano con la sottostringa “Record” e terminano con la sottostringa ” riga 2.”
= > SELEZIONARE v da t DOVE REGEXP_LIKE (v, ' ^Record.* riga 2$'); v - - - (0 righe)
Selezionare le righe che iniziano con la sottostringa “Record” e terminano con la sottostringa “linea 2”, trattando più righe come stringhe separate.