Beberapa orang menggunakan teknik ini
... WHERE @itemid IS NULL OR tbl.itemid = @itemid
Ini menjamin bahwa Anda tidak akan pernah mendapatkan pencarian indeks di kolom itemid.
Pendekatan yang lebih baik jika tabel sama sekali besar adalah dengan membagi kueri menjadi 2 kasus terpisah
IF(@itemid IS NULL)
SELECT foo FROM bar
ELSE
SELECT foo FROM bar WHERE itemid = @itemid
Jika jumlah kombinasi terlalu besar, Anda dapat mempertimbangkan SQL dinamis. Pastikan Anda memahami injeksi SQL terlebih dahulu.
Ref:Kondisi Penelusuran Dinamis di T-SQL