Fungsi-Fungsi Filtering Result di SQL

Viony Wijaya
3 min readAug 25, 2021

--

source: pixabay

Ketika kita berhadapan dengan setumpuk data namun hanya ingin menggunakan sebagian dari data tersebut tentu kita membutuhkan suatu aksi untuk memilah-milah data yang diinginkan, aksi ini sendiri disebut juga dengan filtering result. Jika di artikel sebelumnya kita telah membahas mengenai fungsi SELECT maka di artikel kali ini kita akan menambahkan beberapa fungsi yang biasanya digunakan dalam menyortir data.

Fungsi yang pertama adalah WHERE. WHERE dapat digunakan untuk filter angka ataupun teks. Perlu diingat bahwa WHERE selalu berada ditempatkan setelah FROM, seperti ini contohnya:

SELECT *

FROM films

WHERE budget > 10000;

Query di atas memberi perintah kepada mesin pencari untuk menampilkan semua detail dari kategori film yang memiliki budget lebih dari 10.000 USD. Namun bagaimana jika kita ingin menampilkan semua detail dari film yang memiliki budget lebih dari 10.000 USD namun kurang dari 50.000 USD? Kita bisa menggunakan fungsi AND, seperti ini contohnya:

SELECT *

FROM films

WHERE budget > 10000

AND budget < 50000;

Dapat dikatakan AND merupakan fungsi untuk kondisi khusus dalam Query di atas dan AND dapat digunakan lebih dari 1 kali. Namun hal yang perlu diingat adalah WHERE dan AND perlu berada di baris yang berbeda atau kita akan mendapatkan hasil yang invalid. Fungsi lain yang mirip dengan AND adalah OR. Berikut adalah contoh jika kita mengkombinasikan WHERE, AND, dan OR sekaligus.

SELECT title FROM films

WHERE (release_year = 1994 OR release_year = 1995)

AND (certification = ‘PG’ OR certification = ‘R’);

Perlu diingat pada dasarnya OR tidak dapat digabungkan pada 1 baris dengan WHERE dan AND, diperlukan adanya tanda kurun ( ) supaya kode valid.

Salah satu trik lain untuk mempercepat penulisan kode jika kita ingin mengakses range tertentu di data yang diberikan adalah dengan menggunakan BETWEEN. BETWEEN sendiri berguna untuk menggeser penggunaan AND yang berkali-kali. Selain lebih cepat, penggunaan BETWEEN juga menerapkan konsep DRY (Don’t Repeat Yourself), seperti ini contohnya:

SELECT title

FROM films

WHERE release_year

BETWEEN 1994 AND 2000;

Jika masih ada fungsi AND yang ingin ditambahkan maka WHERE dan BETWEEN dapat digabungkan di 1 baris. Fungsi lain yang juga menerapkan konsep DRY ini adalah WHERE IN dimana bertujuan untuk menggantikan OR di WHERE jika sudah terlalu banyak, seperti ini contohnya:

SELECT name

FROM kids

WHERE age IN (2, 4, 6, 8, 10);

Namun pada umumnya setiap data memiliki missing value dimana hal ini tentu menganggu proses pengolahan data. Untuk mengetahui data apa saja yang memiliki missing value dan yang tidak, kita dapat menggunakan fungsi IS NULL dan IS NOT NULL. NULL sendiri merupakan missing value dan IS NULL merupakan fungsi untuk memanggil missing value yang ada biasanya IS NULL digunakan bersamaan dengan WHERE. Bila kita ingin mengetahui data apa saja yang tidak memiliki missing value maka hanya perlu ditambahkan NOT, seperti ini contohnya:

SELECT name

FROM people

WHERE birthdate IS NOT NULL;

Salah satu keadaan lain yang umum terjadi ketika kita mengolah data adalah ketika kita ingin mencari data yang memiliki pattern tertentu dimana fungsi yang digunakan adalah LIKE dan NOT LIKE. Dalam fungsi like terdapat 2 wildcard yang umum digunakan yaitu % dan _ .

% sendiri akan match ke zero, one atau banyak karakter di suatu teks. Contohnya query di bawah ini akan mendapatkan hasil ‘Data’, ‘DataC’, ‘DataCamp’, ‘DataMind’ dan seterusnya.

SELECT name

FROM companies

WHERE name LIKE ‘Data%’;

Sedangkan wildcard satu nya yaitu _ digunakan untuk single character. Contohnya query di bawah ini akan mendapatkan hasil Datacamp atau Datacomp.

SELECT name

FROM companies

WHERE name LIKE ‘DataC_mp’;

Function terakhir yaitu NOT LIKE dapat digunakan untuk mencari data yang tidak match dengan pattern yang ingin kita cari, seperti ini contohnya:

SELECT name

FROM people

WHERE name NOT LIKE ‘A%’;

Jika ada yang kurang tepat, feel free to comment ya!

--

--