2014-11-06 2 views
1

Я пытаюсь написать запрос, который возвращает данные на основе пользовательской входной переменной (@VariantID).Вернуть все данные, если переменная равна NULL

WHERE sod.ProductVariantID = @VariantID 

Проблема заключается в том, что если @VariableID является NULL, я хочу, чтобы вернуть все данные, независимо от того, что составляет sod.ProductVariantID.

Каков наилучший способ сделать это?

+0

какого-либо конкретный аромат SQL Server? –

ответ

6

Использовать OR состояние, проверяя на NULL или равное состояние =.

WHERE @VariantID is NULL OR sod.ProductVariantID = @VariantID 
0

Если это SQL Server, вы можете использовать ISNULL в качестве альтернативы ответу @RADAR.

WHERE sod.ProductVariantID = ISNULL(@VariantID,sod.ProductVariantID) 

В зависимости от контекста запроса предпочитает использовать контрольное заявление, такие как:

IF @VariantID IS NULL 
    SELECT ... 
ELSE 
    SELECT ... WHERE sod.ProductVariantID = @VariantID 
Смежные вопросы