我在SQL查询中有一个参数,我想在其中选择可能行的子集,或者根据参数选择一个。
基本上,我有一个名为model
的列,它可以包含1000,2000,3000,4000或5000.当参数设置为NULL时,我希望它只选择1000,2000和3000,但不是4000或5000。
我尝试了各种CASE语句组合,即
WHERE model = CASE WHEN @model = NULL THEN model = 1000 OR model = 2000 OR
model = 3000 ELSE @model END AND <query continues>
如何在SQL Server中实现此目的?
答案 0 :(得分:1)
只需使用or
:
WHERE ( (@model is null and model in (1000, 2000, 3000)) or
model = @model
)
答案 1 :(得分:0)
尝试以下方法之一:
Where (model = @model OR
(@model IS NULL AND model <> model IN (1000,2000,3000,4000))
OR
Where (model = @model OR (@model IS NULL AND model <> model <> 5000)