sql查询可空数字大于参数

时间:2010-08-05 12:54:30

标签: sql sql-server

简单表:

create table Items
(
  Price money null
)

现在我需要创建一个存储过程,接受一个 @ItemsWithPriceTenDollarsOrMore类型的参数:

  1. 如果参数为空,则返回所有项目
  2. 如果参数= 1 ,
  3. 会返回价格> = 10的所有商品
  4. 返回价格<的所有商品10如果参数= 0
  5. 我很难在单个where语句中表达此过滤器(不使用动态sql或条件逻辑)。

1 个答案:

答案 0 :(得分:5)

试试这个:

SELECT * FROM Items
WHERE (@ItemsWithPriceTenDollarsOrMore = 1 AND Price >=10)
OR (@ItemsWithPriceTenDollarsOrMore = 0 AND Price <10)
OR (@ItemsWithPriceTenDollarsOrMore IS NULL)