Sdílet prostřednictvím


like operátor

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Vrátí true , pokud str je shodná pattern s escape.

Syntaxe

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

Argumenty

  • str: Výraz STRING .

  • pattern: Výraz STRING .

  • escape: Jednoznakový literál STRING.

  • ANY nebo SOMEALL:

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

    Pokud ALL je zadána, like vrátí, true pokud str odpovídá všem vzorům, v opačném případě vrátí true , pokud odpovídá alespoň jednomu vzoru.

Návraty

Úloha BOOLEAN.

Vzor je řetězec, který se shoduje doslova, s výjimkou následujících speciálních symbolů:

  • _ odpovídá jakémukoli znaku ve vstupu (podobně jako . v regulárních výrazech POSIX)
  • % odpovídá nule nebo více znaků ve vstupu (podobně jako .* v regulárních výrazech POSIX).

Výchozí řídicí znak je '\'znak . Pokud řídicí znak předchází speciálnímu symbolu nebo jinému řídicímu znaku, odpovídá následující znak doslova. Není platné umisovat jakýkoli jiný znak.

Při použití literálů použijte předzpracováníraw-literal řídicího znaku ( r předpona).

str NOT like ... je ekvivalent NOT(str like ...).

Jak je definováno standardem SQL, LIKE vždy rozlišuje koncové mezery, i když třídění nerozlišuje koncové mezery. Pro non-null str: str LIKE str || ' ' je vždy false.

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime 17.2 a vyšší

Následující kolace jsou podporovány LIKE:

  • UTF8_BINARY
  • UTF8_BINARY_RTRIM
  • UTF8_LCASE
  • UTF8_LCASE_RTRIM

Pro jiné kolace použijte contains, startswith, nebo ends_with.

Příklady

> 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