SQL Server: Menggunakan Operator "NOT BETWEEN" pada SQL Server

 Pada artikel sebelumnya, kita belajar bagaimana cara menggunakan operator BETWEEN pada SQL Server. Sekarang kita melakukan sebaliknya, kita akan mengeluarkan/mengecualikan data-data dalam range tertentu dari data hasil query.

Operator NOT BETWEEN digunakan dalam kondisi WHERE untuk mengeluarkan/mengecualikan data dalam rentang yang ditentukan atau dengan kata lain exclude data.

Sintaks:

SELECT kolom11, kolom2,..
FROM tabel
WHERE column NOT BETWEEN nilai_awal AND nilai_akhir

Sebagai contoh kasus kita akan menggunakan tabel item sebagai berikut:


Penggunaan Operator NOT BETWEEN pada Nilai Angka

Pertama kita akan mencoba untuk membuat query dengan operator NOT BETWEEN untuk memfilter nilai angka yaitu harga. Sebagai contoh kita akan menarik seluruh data item kecuali item dengan harga kisaran 5000 sampai 15000.

SELECT * FROM item WHERE pricesell NOT BETWEEN 5000 AND 15000

Hasilnya data hasil query tidak akan menampilkan data dengan harga jual antara 5000 sampai 15000 saja.


Penggunaan Operator NOT BETWEEN pada Nilai Tanggal

Operator NOT BETWEEN kali ini akan kita digunakan untuk menyaring kisaran tanggal. Sebagai contoh kali ini kita akan menarik semua data item kecuali yang dibuat di kisaran tanggal 3 Mei 2022 sampai 5 Mei 2022. 

Sama seperti BETWEEN yang perlu diperhatikan adalah apakah data kita berupa DATETIME atau DATE saja. Karena jika tanggal dicatat lengkap dengan waktunya maka kita perlu melengkapi parameter sampai ke satuan waktunya terutama untuk batas akhir tanggal.

Misalnya kita membuat filter akhir '2022-03-05' maka data dengan nilai '2022-03-05 07:01:48.367' tidak akan masuk kriteria yang dikecualikan dan akan tetap muncul. 

Agar lebih jelas kita buat 2 jenis query NOT BETWEEN dengan tanggal saja dan tanggal yang lengkap dengan waktu.

NOT BETWEEN dengan Nilai Tanggal Saja

SELECT * FROM item WHERE createddate NOT BETWEEN '2022-03-03' AND '2022-03-05'

Hasilnya data di tanggal 5 Mei 2002 masih ditampilkan, karena semua data di tanggal tersebut memiliki nilai waktu.

NOT BETWEEN dengan Nilai Tanggal dan Waktu

Sama seperti saat menggunakan operator BETWEEN Jika data parameter tanggal akhir ingin dikecualikan juga maka perlu dilengkapi dengan menitnya. Tentunya kita tidak selalu tahu detail waktunya, karena itu ambil waktu maksimal dari tanggal akhir yang bersangkutan ('2022-03-05 23:59:59.999'). 

Sementara waktu awal tentunya kita beri waktu paling awal atau cukup hanya menuliskan tanggalnya saja agar seluruh data di tanggal awal tersebut ikut ditampilkan ('2022-03-03 00:00:00.000' atau '2022-03-03').

SELECT * FROM item WHERE createddate NOT BETWEEN '2022-03-03' AND '2022-03-05 23:59:59.999'

Hasilnya seluruh data berdasarkan createddate dari tanggal 3 Mei 2022 sampai 5 Mei 2022 dikecualikan jadi tidak akan tampil.

Penggunaan Operator NOT BETWEEN pada Nilai Teks (String)

Mengecualikan data yang tampil dengan filter ranget string tertentu juga memungkinkan, meskipun lebih jarang penggunaannya tapi operator NOT BETWEEN juga dapat digunakan untuk mengecualikan data dari sampai (antara) secara urutan alfabet.

Kita akan menjelaskan pengunaannya dengan contoh. Misal kita akan menampilkan itemname dengan huruf awal A sampai F agar tidak diikutsertalam dalam hasil tertentu, ini sebenarnya parameter yang kita masukan justru BETWEEN 'A' AND 'G' karena jika menulis BETWEEN 'A' AND 'F', nama item berawalan F masih akan ditampilkan.

Untuk melihat perbedaannya kita coba saja query dengan dua jenis parameter tersebut.

SELECT * FROM item WHERE itemname NOT BETWEEN 'A' AND 'F'
ORDER BY itemname

Kita menyertakan order by itemname agar terlihat urutan data berdasarkan nama item secara alfabet. Dan ternyata nama item berawalan F masih ditampilkan.


Sementara dengan query berikut:

SELECT * FROM item WHERE itemname NOT BETWEEN 'A' AND 'G'
ORDER BY itemname

Nama item berawalan F yaitu "FLORIDINA 350ML ORANGE PULPY" ikut terkecualikan dan tidak akan tampil.



Post a Comment

0 Comments