Saya memiliki halaman pencarian ASP.net tempat pengguna dapat memasukkan satu atau lebih kriteria pencarian. Halaman ini memanggil prosedur tersimpan untuk menanyakan db MS SQL Server 2008.
Bagian dari kriteria pencarian adalah tanggal tunggal atau rentang tanggal. Jika pengguna menyediakan Tanggal1, kami mencari pada satu tanggal. Jika pengguna menyediakan Tanggal1 dan Tanggal2, kami mencari berdasarkan rentang tanggal.
Masalah saya adalah mengkode logika ini di proses yang disimpan.
@Date1 datetime
@Date2 datetime
..other search params...
Jadi ada tiga syarat:
- @Date1 dan @Date2 keduanya null (pengguna tidak mencari tanggal)
- @Date1 bukan null dan @Date2 adalah null (pengguna mencari pada satu tanggal)
- @Date1 bukan null dan @Date2 bukan null (pengguna mencari rentang tanggal)
Saya tidak tahu bagaimana menyusun klausa WHERE untuk menangani masing-masing dari tiga kemungkinan kondisi.
Saya kenal dengan ISNULL()
dan COALESCE()
Setiap tip atau saran sangat dihargai.