कुछ लोग इस तकनीक का उपयोग करते हैं
... WHERE @itemid IS NULL OR tbl.itemid = @itemid
हालांकि यह गारंटी देता है कि आपको कभी भी आइटम आईडी कॉलम पर इंडेक्स की तलाश नहीं होगी।
यदि तालिका बिल्कुल बड़ी है तो एक बेहतर तरीका यह है कि क्वेरी को 2 अलग-अलग मामलों में विभाजित किया जाए
IF(@itemid IS NULL)
SELECT foo FROM bar
ELSE
SELECT foo FROM bar WHERE itemid = @itemid
यदि संयोजनों की संख्या बहुत बड़ी है तो आप गतिशील SQL पर विचार कर सकते हैं। सुनिश्चित करें कि आप पहले SQL इंजेक्शन को समझते हैं।
संदर्भ:टी-एसक्यूएल में गतिशील खोज स्थितियां