SUKA - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

SUKA

Operator LIKE membandingkan ekspresi string, seperti nama kolom, dengan pola yang menggunakan karakter wildcard% (percent) dan _ (underscore). Pencocokan pola LIKE selalu mencakup seluruh string. Untuk mencocokkan urutan di mana saja dalam string, pola harus dimulai dan diakhiri dengan tanda persen.

LIKE peka huruf besar/kecil; ILIKE tidak peka huruf besar/kecil.

Sintaks

expression [ NOT ] LIKE | ILIKE pattern [ ESCAPE 'escape_char' ]

Argumen

ekspresi

Ekspresi karakter UTF-8 yang valid, seperti nama kolom.

SEPERTI | ILIKE

LIKE melakukan kecocokan pola peka huruf besar/kecil. ILIKE melakukan kecocokan pola case-insensitive untuk karakter single-byte UTF-8 (ASCII). Untuk melakukan kecocokan pola case-insensitive untuk karakter multibyte, gunakan fungsi LOWER pada ekspresi dan pola dengan kondisi LIKE.

Berbeda dengan predikat perbandingan, seperti = dan <>, predikat LIKE dan ILIKE tidak secara implisit mengabaikan spasi tambahan. Untuk mengabaikan spasi tambahan, gunakan RTRIM atau secara eksplisit melemparkan kolom CHAR ke VARCHAR.

~~Operator setara dengan LIKE, dan ~~* setara dengan ILIKE. Juga !~~ dan !~~* operator setara dengan TIDAK SUKA dan TIDAK ILIKE.

pola

Ekspresi karakter UTF-8 yang valid dengan pola yang akan dicocokkan.

escape_char

Ekspresi karakter yang akan lolos dari karakter metakarakter dalam pola. Defaultnya adalah dua garis miring terbalik ('\\').

Jika pola tidak mengandung metakarakter, maka pola hanya mewakili string itu sendiri; dalam hal ini LIKE bertindak sama dengan operator sama dengan.

Salah satu ekspresi karakter dapat berupa tipe data CHAR atau VARCHAR. Jika berbeda, Amazon Redshift mengubah pola ke tipe data ekspresi.

LIKE mendukung metakarakter pencocokan pola berikut:

Operator Deskripsi
% Cocokkan dengan urutan nol atau lebih karakter.
_ Cocokkan karakter tunggal apa pun.

Contoh

Tabel berikut menunjukkan contoh pencocokan pola menggunakan LIKE:

Ekspresi Pengembalian
'abc' LIKE 'abc' True
'abc' LIKE 'a%' Benar
'abc' LIKE '_B_' Salah
'abc' ILIKE '_B_' Benar
'abc' LIKE 'c%' False

Contoh berikut menemukan semua kota yang namanya dimulai dengan “E”:

select distinct city from users where city like 'E%' order by city; city --------------- East Hartford East Lansing East Rutherford East St. Louis Easthampton Easton Eatontown Eau Claire ...

Contoh berikut menemukan pengguna yang nama belakangnya berisi “sepuluh”:

select distinct lastname from users where lastname like '%ten%' order by lastname; lastname ------------- Christensen Wooten ...

Contoh berikut menunjukkan bagaimana untuk mencocokkan beberapa pola.

select distinct lastname from tickit.users where lastname like 'Chris%' or lastname like '%Wooten' order by lastname; lastname ------------- Christensen Christian Wooten ...

Contoh berikut menemukan kota yang karakter ketiga dan keempat adalah “ea”. Perintah menggunakan ILIKE untuk menunjukkan ketidakpekaan kasus:

select distinct city from users where city ilike '__EA%' order by city; city ------------- Brea Clearwater Great Falls Ocean City Olean Wheaton (6 rows)

Contoh berikut menggunakan string escape default (\\) untuk mencari string yang menyertakan “start_” (teks start diikuti oleh garis bawah): _

select tablename, "column" from pg_table_def where "column" like '%start\\_%' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)

Contoh berikut menentukan '^' sebagai karakter escape, kemudian menggunakan karakter escape untuk mencari string yang menyertakan “start_” (teks start diikuti dengan garis bawah): _

select tablename, "column" from pg_table_def where "column" like '%start^_%' escape '^' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)

Contoh berikut menggunakan ~~* operator untuk melakukan pencarian case-insensitive (ILIKE) untuk kota yang dimulai dengan “Ag”.

select distinct city from users where city ~~* 'Ag%' order by city; city ------------ Agat Agawam Agoura Hills Aguadilla