Memilih Data dalam Rentang dalam SQL

Memperkenalkan klausa WHERE dan kondisi BETWEEN

The Structured Query Language (SQL) menyediakan pengguna basis data dengan kemampuan untuk membuat kueri yang disesuaikan untuk mengekstrak informasi dari basis data. Dalam artikel sebelumnya, kami menjelajahi penggalian informasi dari database menggunakan SQL SELECT queries . Mari kita memperluas diskusi itu dan menjelajahi bagaimana Anda dapat melakukan kueri lanjutan untuk mengambil data yang cocok dengan kondisi tertentu.

Mari kita pertimbangkan contoh berdasarkan database Northwind yang umum digunakan, yang sering dikirimkan dengan produk basis data sebagai tutorial.

Berikut adalah kutipan dari tabel Produk database:

Tabel Produk
ID Produk Nama Produk SupplierID QuantityPerUnit Patokan harga UnitsInStock
1 Chai 1 10 kotak x 20 tas 18,00 39
2 Chang 1 24 - 12 oz botol 19,00 17
3 Syrup adas manis 1 12 - 550 botol ml 10,00 13
4 Bumbu Cajun Chef Anton 2 48 - 6 ons botol 22,00 53
5 Campuran Gumbo Chef Anton 2 36 kotak 21,35 0
6 Penyebaran Boysenberry Nenek 3 12 - 8 oz botol 25,00 120
7 Pir Kering Organik Paman Bob 3 12 - 1 pon pkgs. 30,00 15

Kondisi Batas Sederhana

Pembatasan pertama yang akan kami tempatkan pada permintaan kami melibatkan kondisi batas sederhana. Kita dapat menentukan ini di klausa WHERE dari query SELECT, menggunakan pernyataan kondisi sederhana yang dibangun dengan operator standar, seperti <,>,> =, dan <=.


Pertama, mari kita coba query sederhana yang memungkinkan kita untuk mengekstrak daftar semua produk dalam database yang memiliki UnitHarga lebih dari 20,00:

SELECT ProductName, UnitPrice FROM products WHERE UnitHarga> 20,00

Ini menghasilkan daftar empat produk, seperti yang ditunjukkan di bawah ini:

ProductName UnitHarga ------- -------- Gumbo Mix Chef Anton 21.35 Bumbu Cajun Chef Anton 22.00 Nenek Boysenberry Menyebar 25.00 Paman Bob Organik Kering 30.00

Kita juga dapat menggunakan klausa WHERE dengan nilai string. Ini pada dasarnya menyamakan karakter ke angka, dengan A mewakili nilai 1 dan Z yang mewakili nilai 26. Misalnya, kita bisa menampilkan semua produk dengan nama yang dimulai dengan U, V, W, X, Y atau Z dengan kueri berikut:

PILIH ProductName FROM produk WHERE ProductName> = 'T'

Yang menghasilkan hasilnya:

ProductName ------- Pir Pisang Organik Uncle Bob

Mengekspresikan Rentang menggunakan Boundary

Klausa WHERE juga memungkinkan kita untuk menerapkan kondisi jangkauan pada suatu nilai dengan menggunakan beberapa kondisi. Misalnya, jika kami ingin mengambil kueri kami di atas dan membatasi hasil untuk produk dengan harga antara 15.00 dan 20.00, kami dapat menggunakan kueri berikut:

SELECT ProductName, UnitPrice FROM products WHERE UnitHarga> 15.00 DAN UnitHarga <20,00

Ini menghasilkan hasil yang ditunjukkan di bawah ini:

ProductName UnitHarga ------- -------- Chai 18.00 Chang 19.00

Mengekspresikan Berkisar dengan ANTARA

SQL juga menyediakan sintaks antara sintaks yang mengurangi jumlah kondisi yang perlu kita sertakan dan membuat permintaan lebih mudah dibaca. Misalnya, alih-alih menggunakan dua kondisi WHERE di atas, kami dapat mengungkapkan kueri yang sama seperti:

PILIH Nama Produk, UnitHarga DARI produk DI MANA UnitHarga ANTARA 15.00 DAN 20.00

Seperti halnya klausul kondisi lainnya, ANTARA bekerja dengan nilai string juga. Jika kami ingin membuat daftar semua negara yang dimulai dengan V, W atau X, kami dapat menggunakan kueri:

PILIH ProductName FROM produk WHERE ProductName ANTARA "A" dan "D"

Yang menghasilkan hasilnya:

ProductName ------- Aniseed Syrup Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun Seasoning

Klausa WHERE adalah bagian kuat dari bahasa SQL yang memungkinkan Anda untuk membatasi hasil ke nilai yang jatuh dalam rentang yang ditentukan. Ini sangat umum digunakan untuk membantu mengekspresikan logika bisnis dan harus menjadi bagian dari setiap toolkit database profesional.

Ini sering membantu untuk memasukkan klausul umum ke dalam prosedur yang tersimpan untuk membuatnya dapat diakses oleh mereka yang tidak memiliki pengetahuan SQL.