此示例是否有函数:
我在where
子句中有3个字段:
where field1 = ? AND field2 = ? AND field3 = ?
有没有办法让它如果值为null
,请将其从搜索字段中排除?比如说field1是空的,而不是搜索field1 = empty
,你只是从搜索结果中排除field1
?
答案 0 :(得分:3)
尝试这种方式:
WHERE (@value1 IS NULL OR field1 = @value1)
AND (@value2 IS NULL OR field2 = @value2)
AND (@value3 IS NULL OR field3 = @value3)
<强>解释强>
如果参数@ value1传递为null,则不会搜索field1。
如果您不想在该字段为空时搜索该字段,则可以执行以下操作:
WHERE (field1='' OR field1 = @value1)
AND (field2='' OR field2 = @value2)
AND (field3='' OR field3 = @value3)