Поделиться через


Оператор like

Область применения: флажок Databricks SQL флажок Databricks Runtime

Возвращает значение true, если str совпадает с pattern и escape.

Синтаксис

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

Аргументы

  • str: выражение STRING.

  • pattern: выражение STRING.

  • escape: односимвольный литерал STRING.

  • ANY, SOME или ALL:

    Область применения: флажок Databricks SQL флажок Databricks Runtime

    Если ALL указан, то like возвращает true, если str соответствует всем шаблонам, в противном случае возвращает true, если соответствует хотя бы одному шаблону.

Возвраты

BOOLEAN.

pattern — это шаблон, строка, которая сравнивается по буквам, за исключением следующих специальных символов:

  • _ соответствует любому одному символу во входных данных (аналогично . в регулярных выражениях POSIX);
  • % соответствует нулю значений и более во входных данных (аналогично .* в регулярных выражениях POSIX).

По умолчанию в качестве escape-символа используется '\'. Если escape-символ предшествует специальному символу или другому escape-символу, следующий знак сопоставляется буквально. Недопустимо экранировать любые другие знаки.

При использовании литерала используйте raw-literal (r префикс) для предотвращения предварительной обработки символов escape-символа.

str NOT like ... эквивалентна NOT(str like ...).

Примеры

> 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