LIKE - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

LIKE

L'operatore LIKE confronta un'espressione di stringa, come il nome di colonna, con un modello che usa i caratteri jolly % (percentuale) e _ (sottolineatura). La corrispondenza di modello LIKE copre sempre l'intera stringa. Per trovare la corrispondenza con una sequenza in qualsiasi parte di una stringa, è necessario che il modello inizi e termini con un segno di percentuale.

LIKE fa distinzione tra maiuscole e minuscole, ILIKE no.

Sintassi

expression [ NOT ] LIKE | ILIKE pattern [ ESCAPE 'escape_char' ]

Argomenti

espressione

Un'espressione di caratteri UTF-8 valida, come un nome di colonna.

LIKE | ILIKE

LIKE esegue una corrispondenza di modello che fa distinzione tra maiuscole e minuscole. ILIKE esegue una corrispondenza di modello che non fa distinzione tra maiuscole e minuscole per caratteri UTF-8 (ASCII) a byte singolo. Per eseguire una corrispondenza di modello che non fa distinzione tra maiuscole e minuscole per caratteri multibyte, utilizzare la funzione LOWER sull'espressione e modello con una condizione LIKE.

Al contrario dei predicati di confronto, come = e <>, i predicati LIKE e ILIKE non ignorano implicitamente gli spazi finali. Per ignorare gli spazi finali, utilizzare RTRIM o trasmettere in modo esplicito una colonna CHAR a VARCHAR.

L'operatore ~~ è equivalente a LIKE e ~~* è equivalente a ILIKE. Inoltre, gli operatori !~~ e !~~* sono equivalenti a NOT LIKE e NOT ILIKE.

pattern

Un'espressione di caratteri UTF-8 valida con il modello da associare.

escape_char

Un'espressione di caratteri che eseguirà l'escape dei metacaratteri nel modello. Per impostazione predefinita sono due barre rovesciate ("\\").

Se il modello non contiene metacaratteri, allora il modello rappresenta solo la stringa stessa; in questo caso LIKE agisce come l'operatore di uguaglianza.

Entrambe le espressioni di caratteri possono essere tipi di dati CHAR o VARCHAR. Se differiscono, Amazon Redshift converte il modello al tipo di dati dell'espressione.

LIKE supporta i seguenti metacaratteri di corrispondenza di modelli:

Operatore Descrizione
% Abbina qualsiasi sequenza di zero o più caratteri.
_ Abbina qualsiasi carattere singolo.

Esempi

La tabella seguente mostra esempi di corrispondenza di modelli usando LIKE:

Expression Valori restituiti
'abc' LIKE 'abc' True
'abc' LIKE 'a%' True
'abc' LIKE '_B_' False
'abc' ILIKE '_B_' True
'abc' LIKE 'c%' False

L'esempio seguente trova tutte le città il cui nome inizia per "E":

select distinct city from users where city like 'E%' order by city; city --------------- East Hartford East Lansing East Rutherford East St. Louis Easthampton Easton Eatontown Eau Claire ...

L'esempio seguente trova tutti gli utenti il cui cognome contiene "ten":

select distinct lastname from users where lastname like '%ten%' order by lastname; lastname ------------- Christensen Wooten ...

Nell'esempio seguente viene illustrato come mettere in corrispondenza più modelli.

select distinct lastname from tickit.users where lastname like 'Chris%' or lastname like '%Wooten' order by lastname; lastname ------------- Christensen Christian Wooten ...

L'esempio seguente trova le città il cui terzo e quarto carattere sono "ea". Il comando usa ILIKE per dimostrare che non fa distinzione tra maiuscole e minuscole:

select distinct city from users where city ilike '__EA%' order by city; city ------------- Brea Clearwater Great Falls Ocean City Olean Wheaton (6 rows)

Nell'esempio seguente viene usata la stringa con caratteri escape predefinita (\\) per ricercare stringhe che contengono "start_" (il testo start seguito da una sottolineatura _):

select tablename, "column" from pg_table_def where "column" like '%start\\_%' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)

L'esempio seguente specifica "^" come carattere di escape, quindi usa il carattere di escape per ricercare stringhe che contengono "start_" (il testo start seguito da una sottolineatura _):

select tablename, "column" from pg_table_def where "column" like '%start^_%' escape '^' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)

L'esempio seguente utilizza l'operatore ~~* per eseguire una ricerca senza distinzione tra maiuscole e minuscole (ILIKE) delle città che iniziano con "Ag".

select distinct city from users where city ~~* 'Ag%' order by city; city ------------ Agat Agawam Agoura Hills Aguadilla