Condividi tramite


like operatore

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Restituisce true se str corrisponde pattern a .escape

Sintassi

str [ NOT ] like ( pattern [ ESCAPE escape ] )
str [ NOT ] like { ANY | SOME | ALL } ( [ pattern [, ...] ] )

Argomenti

  • str: un'espressione STRING.

  • pattern: un'espressione STRING.

  • escape: valore letterale carattere STRING singolo.

  • ANY o SOME o ALL:

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

    Se ALL viene specificato , like restituisce true se str corrisponde a tutti i modelli, in caso contrario restituisce true se corrisponde ad almeno un modello.

Valori restituiti

Un oggetto BOOLEAN.

Il criterio è una stringa corrispondente letteralmente, ad eccezione dei simboli speciali seguenti:

  • _ corrisponde a un carattere nell'input (simile a . nelle espressioni regolari POSIX)
  • % corrisponde a zero o più caratteri nell'input (simile a .* nelle espressioni regolari POSIX).

Il carattere di escape predefinito è .'\' Se un carattere di escape precede un simbolo speciale o un altro carattere di escape, per il carattere successivo viene stabilita una corrispondenza letterale. Non è possibile aggiungere caratteri di escape a qualsiasi altro carattere.

Quando si usano valori letterali, usare raw-literal (r prefisso) per evitare la pre-elaborazione dei caratteri di escape.

str NOT like ... è pari a NOT(str like ...).

Come definito dallo standard SQL, LIKE è sempre sensibile agli spazi finali, anche se la collazione non fa distinzione tra spazi finali. Per i casi non nulli str: str LIKE str || ' ' è sempre false.

Si applica a:sì contrassegnato Databricks SQL sì contrassegnato Databricks Runtime 17.2 e versioni successive

Le regole di confronto seguenti sono supportate da LIKE:

  • UTF8_BINARY
  • UTF8_BINARY_RTRIM
  • UTF8_LCASE
  • UTF8_LCASE_RTRIM

Per altre regole di confronto usare contains, startswitho ends_with.

Esempi

> SELECT like('Spark', '_park');
true

> SELECT r'%SystemDrive%\Users\John' like r'%SystemDrive%\\Users%';
true

-- When not using raw literals, the escape character must be escaped.
> SELECT r'%SystemDrive%\Users\John' like '%SystemDrive%\\\\Users%';
true

> SELECT '%SystemDrive%/Users/John' like '/%SystemDrive/%//Users%' ESCAPE '/';
true

> SELECT like('Spock', '_park');
false

> SELECT 'Spark' like SOME ('_park', '_ock')
true

> SELECT 'Spark' like ALL ('_park', '_ock')
false

-- like is always trailing blank sensitive
> SELECT 'Spark' COLLATE UTF8_BINARY_RTRIM like 'Spark ';
false