我正在使用SQL Server存储过程。在我的表单中,我有一个必填字段sizeid
和一个可选字段select *
from product
where date = '4/03/2018'
and (case when @param is not null then sizeid = @param end)
。有两种方案可以检索数据
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]])
当可选字段为空时,我不想检查条件,如果有,那么我想检查
我希望有人能尽快帮助我
答案 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)