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 je zadáno ALL, vrátí se NOT jako true, pokud str odpovídá (nebo neodpovídá) všem vzorům. Jinak, nebo pokud je zadán ANY nebo SOME, pak [NOT] like vrátí true, pokud str odpovídá (nebo neodpoví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