Menggunakan Wildcards untuk Matching Inexact
Padanan corak SQL membolehkan anda mencari pola dalam data, jika anda tidak tahu perkataan atau frasa yang tepat yang anda cari. Permintaan SQL jenis ini menggunakan aksara kad liar untuk sepadan dengan corak, dan bukannya menentukan tepat. Sebagai contoh, anda boleh menggunakan wildcard "C%" untuk memadankan sebarang rentetan yang bermula dengan modal C.
Menggunakan Operator LIKE
Untuk menggunakan ekspresi wildcard dalam query SQL, gunakan pengendali LIKE dalam klausa WHERE, dan sertakan corak dalam tanda petikan tunggal.
Menggunakan Wildcard% untuk Melakukan Carian Mudah
Untuk mencari pekerja dalam pangkalan data anda dengan nama terakhir yang bermula dengan huruf C, gunakan pernyataan Transact-SQL berikut:
SELECT * FROM employees WHERE last_name LIKE 'C%'Menolak Corak Menggunakan Kata Kunci TIDAK
Gunakan kata kunci TIDAK untuk memilih rekod yang tidak sepadan dengan corak. Sebagai contoh, pertanyaan ini mengembalikan semua rekod yang nama terakhirnya tidak bermula dengan C:
SELECT * FROM employees WHERE last_name TIDAK SEPERTI 'C%'Mencocokkan Corak Mana-mana Menggunakan Kad Wildcard Dua Kali
Gunakan dua contoh kad liar % untuk sepadan dengan corak tertentu di mana-mana sahaja. Contoh ini mengembalikan semua rekod yang mengandungi C di mana saja di nama akhir:
SELECT * FROM employees WHERE last_name LIKE '% C%'Mencari Perlawanan Corak pada Kedudukan Khusus
Gunakan _ wildcard untuk mengembalikan data di lokasi tertentu. Contoh ini hanya sepadan jika C berlaku pada kedudukan ketiga lajur nama terakhir:
SELECT * FROM employees WHERE last_name LIKE '_ _C%'Ekspresi Wildcard yang disokong dalam Transact SQL
Terdapat beberapa ungkapan wildcard yang disokong oleh Transact SQL:
- Kad liar % sepadan dengan sifar atau lebih banyak aksara dari sebarang jenis, dan boleh digunakan untuk menentukan kad liar sebelum dan selepas corak. Jika anda biasa dengan pencocokan corak DOS, ia bersamaan dengan * wildcard dalam sintaks itu.
- Kad liar itu sepadan dengan satu watak jenis apa pun. Ia bersamaan dengan ? wildcard dalam padanan corak DOS.
- Tentukan senarai aksara dengan melampirkannya dalam kurungan persegi. Sebagai contoh, kad liar [aeiou] sepadan dengan mana-mana vokal.
- Tentukan pelbagai aksara dengan melampirkan julat dalam kurungan persegi. Sebagai contoh, kad liar [am] sepadan dengan mana-mana huruf pada separuh pertama abjad.
- Nilaikan pelbagai watak dengan memasukkan watak karat dengan serta-merta di dalam pendakap persegi pembuka. Sebagai contoh, [^ aeiou] sepadan dengan mana-mana watak bukan vokal manakala [^ am] sepadan dengan mana-mana watak yang tidak pada separuh pertama abjad.
Menggabungkan Wildcard untuk Corak Kompleks
Campurkan kad liar ini dalam corak kompleks untuk melakukan pertanyaan lebih lanjut. Misalnya, anda perlu membuat senarai semua pekerja anda yang mempunyai nama yang bermula dengan huruf dari separuh pertama abjad tetapi tidak berakhir dengan vokal. Anda boleh menggunakan pertanyaan berikut:
SELECT * FROM employees WHERE last_name LIKE '[am]% [^ aeiou]'Begitu juga, anda boleh membina senarai semua pekerja dengan nama terakhir yang terdiri daripada empat huruf dengan menggunakan empat contoh corak:
SELECT * FROM employees WHERE last_name LIKE '____'Seperti yang anda boleh katakan, penggunaan kemampuan mencocokkan corak SQL menawarkan pengguna pangkalan data keupayaan untuk melampaui pertanyaan teks mudah dan melakukan operasi pencarian lanjutan.