如何根据Microsoft SQL中的参数按条件子集进行筛选?
我在SQL查询中有一个参数,我想在其中选择可能行的子集,或者基于该参数选择一个 基本上,我有一个名为如何根据Microsoft SQL中的参数按条件子集进行筛选?,sql,sql-server,Sql,Sql Server,我在SQL查询中有一个参数,我想在其中选择可能行的子集,或者基于该参数选择一个 基本上,我有一个名为model的列,它可以包含1000、2000、3000、4000或5000。当参数设置为NULL时,我希望它只选择1000、2000和3000,而不是4000或5000 我尝试过各种案例陈述的组合,即 WHERE model = CASE WHEN @model = NULL THEN model = 1000 OR model = 2000 OR model = 3000 ELSE @mode
model
的列,它可以包含1000、2000、3000、4000或5000。当参数设置为NULL时,我希望它只选择1000、2000和3000,而不是4000或5000
我尝试过各种案例陈述的组合,即
WHERE model = CASE WHEN @model = NULL THEN model = 1000 OR model = 2000 OR
model = 3000 ELSE @model END AND <query continues>
当@model=NULL时model=CASE,则model=1000或model=2000或
型号=3000 ELSE@型号端和
如何在SQL Server中实现这一点?只需使用
或即可:
WHERE ( (@model is null and model in (1000, 2000, 3000)) or
model = @model
)
请尝试以下操作之一:
Where (model = @model OR
(@model IS NULL AND model <> model IN (1000,2000,3000,4000))
其中(model=@model或
(@model为空,模型位于(1000200030004000))
或
其中(model=@model或(@model为空,model为5000)
我想只是没有把它放在Where子句中。
Where (model = @model OR (@model IS NULL AND model <> model <> 5000)