如何检查SQL Server中的条件

时间:2018-03-04 16:02:36

标签: sql sql-server database

我正在使用SQL Server存储过程。在我的表单中,我有一个必填字段sizeid和一个可选字段select * from product where date = '4/03/2018' and (case when @param is not null then sizeid = @param end) 。有两种方案可以检索数据

  1. 可选字段不为空
  2. 可选字段为空
  3. T-SQL查询

    a = np.array([1, 2, 3])
    b = np.array([2, 3, 4])
    np.vstack((a,b))
    array([[1, 2, 3],[2, 3, 4]])
    

    当可选字段为空时,我不想检查条件,如果有,那么我想检查

    我希望有人能尽快帮助我

2 个答案:

答案 0 :(得分:0)

您的SQL语法似乎不正确,因为如果您的CASE语句的计算结果为false,则它不会返回任何内容,因此您的AND子句无需计算任何内容。我会尝试这样的事情:

select * from product
where date='4/03/2018'
and sizeid= case when @param is not null
then @param else sizeid end

答案 1 :(得分:0)

使用IsNull()NullIf()的另一种选择。这样,如果@param=''它将被处理为null。

NullIf()是可选的。

select * 
 From product 
 where date='2018-03-04' 
   and sizeid=IsNull(NullIf(@param,''),sizeid)