like Operator

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mengembalikan true jika str cocok pattern dengan escape.

Sintaks

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

Argumen

  • str: Ekspresi STRING .

  • pattern: Ekspresi STRING .

  • escape: Satu karakter STRING harfiah.

  • ANY atau SOME atau ALL:

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

    Jika ALL ditentukan maka [NOT] seperti mengembalikan true jika str cocok (atau tidak cocok) semua pola. Jika tidak, atau jika ANY atau SOME ditentukan, maka [NOT] seperti mengembalikan true jika str cocok (atau tidak cocok) setidaknya satu pola.

Mengembalikan

BOOLEAN.

Polanya adalah string yang dicocokkan secara harfiah, dengan pengecualian simbol khusus berikut:

  • _ cocok dengan satu karakter apa pun di input (mirip dengan . dalam ekspresi reguler POSIX)
  • % cocok dengan nol karakter atau lebih dalam input (mirip .* dalam regex POSIX).

Karakter escape defaultnya adalah '\'. Jika karakter escape mendahului simbol khusus atau karakter escape lainnya, karakter berikut ini dicocokkan secara harfiah. Melupakan karakter lain tidak diperbolehkan.

Saat menggunakan literal, gunakan raw-literal (r awalan) untuk menghindari pra-pemrosesan karakter escape.

str NOT like ... setara dengan NOT(str like ...).

Seperti yang didefinisikan oleh Standar SQL, LIKE selalu sensitif terhadap spasi akhir, bahkan jika pengurutan tidak sensitif terhadap spasi akhir. Bagi str yang bukan null: str LIKE str || ' ' berarti selalu false.

Berlaku untuk:ditandai dengan ya Databricks SQL ditandai dengan ya Databricks Runtime 17.2 ke atas

Kolatasi berikut didukung oleh LIKE:

  • UTF8_BINARY
  • UTF8_BINARY_RTRIM
  • UTF8_LCASE
  • UTF8_LCASE_RTRIM

Untuk kolatasi lain, gunakan contains, startswith, atau ends_with.

Contoh

> 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