Menggunakan klausa SELECT dan FROM, berarti semua baris data diambil dan ditampilkan. Namun, bagaimana jika kita ingin membatasi apa yang ditampilkan? SQL menggunakan klausa WHERE untuk menspesifikasikan kondisi yang harus dipenuhi oleh setiap baris data. Jika kondisi terpenuhi, dalam arti kata lain bernilai TRUE, maka baris data tersebut akan ditampilkan. Dan sebaliknya, jika bernilai FALSE, maka tidak akan ditampilkan.

Penggunaan WHERE dapat dilihat pada rumusan berikut:

SELECT [DISTINCT|ALL] <select list>
FROM <table list>
WHERE <row condition>

<row condition> berisi 3 elemen yaitu:

  1. Nama kolom, bukan alias
  2. Operator pembanding
  3. Nama kolom, konstanta, atau sekumpulan nilai

Sebagai contoh, perhatikan query berikut ini:

SELECT      CustomerID
FROM         Sales.Customer
WHERE      CustomerType = ‘S’;

Dalam kondisi, elemen 1 adalah CustomerType, elemen 2 adalah = , dan elemen 3 adalah ‘S’. Umumnya, dalam elemen 1 dan elemen 3 telah diketahui sebelumnya (jika belum, bisa disolusikan dengan Sub Query). Yang menjadi kendala terbesar adalah pada elemen 2. Kesalahan dalam memilih operator dapat memberikan HASIL yang BERBEDA, dan ini TIDAK  dianggap sebagai ERROR.

Beberapa operator pembanding antara lain:

  1. = (sama dengan)
  2. > (lebih besar dari) dan >= (lebih besar sama dengan)
  3. < (kurang dari) dan <= (kurang dari sama dengan)
  4. <> atau != (tidak sama dengan)
  5. BETWEEN … AND … (diantara range). Contoh: ContactID BETWEEN 5 AND 8
  6. IN (termasuk salah satu diantara kumpulan nilai). Contoh: ContactID IN(100,300,900)
  7. LIKE (cocok dengan pola karakter tertentu). POLA ini diwakili oleh WILDCARDS. ada 2 yaitu _ (1 karakter) dan % (>1 karakter). Contoh: FirstName LIKE ‘_am%’ –> hasil: James, Damri, Sam, dll.
  8. IS [NOT] NULL (pengecekan terhadap nilai NULL)