このテクニックを使う人もいます
... WHERE @itemid IS NULL OR tbl.itemid = @itemid
プレ>ただし、itemid 列でインデックス シークが発生しないことが保証されます。
テーブルがまったく大きい場合のより良いアプローチは、クエリを 2 つの別々のケースに分割することです
IF(@itemid IS NULL) SELECT foo FROM bar ELSE SELECT foo FROM bar WHERE itemid = @itemid
プレ>組み合わせの数が多すぎる場合は、動的 SQL を検討できます。最初に SQL インジェクションを理解しておいてください。