我不确定如何100%处理此问题,但我认为它可能是使用动态SQL的东西。用户希望能够使用GUI上的复选框来传递变量。并非所有复选框都会通过数据进行检查。一次只能检查几个。无论如何,我投票支持无线电盒,所以现在问题是我必须根据他们传入的变量进行过滤。所以在WHERE子句中它需要动态过滤。我很少使用动态SQL,而且我不是DBA。因此,如果我使用数据传入两个值并且一个为null,那么当其中一个值为nothing或null时,如何防止它在Where子句中进行过滤。
这样的事情:
@Ajax.ActionLink("Add New Item", "NewItem", new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.InsertBefore,
UpdateTargetId = "item-list"
})
答案 0 :(得分:1)
使用OR
:
SELECT *
FROM Table
WHERE (@obj1 IS NULL OR ( ... filter with @obj1 here ) ) AND
(@obj2 IS NULL OR ( ... filter with @obj2 here ) ) AND
(@obj3 IS NULL OR ( ... filter with @obj3 here ) )
例如,如果@ obj1为NULL
,那么有关@obj1
的相应谓词将从WHERE
子句中删除。