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


Оператор ilike

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

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

Синтаксис

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

Аргументы

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

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

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

  • ANY, SOME или ALL:

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

Возвраты

Значение BOOLEAN.

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

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

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

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

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

Примеры

> SELECT ilike('Spark', '_PARK');
true

> SELECT r'%SystemDrive%\users\John' ilike r'\%SystemDrive\%\\Users%';
true

> SELECT r'%SystemDrive%\users\John' ilike '\%SystemDrive\%\\\\Users%';
true

> SELECT '%SystemDrive%/Users/John' ilike '/%SystemDrive/%//users%' ESCAPE '/';
true

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

> SELECT 'Spark' like SOME ('_ParK', '_Ock')
true

> SELECT 'Spark' like ALL ('_ParK', '_Ock')
false