【发布时间】:2016-07-02 10:50:27
【问题描述】:
我不确定如何 100% 解决这个问题,但我认为这很可能是使用动态 SQL 的问题。用户希望能够使用 GUI 上的复选框来传递变量。并非所有复选框都会在传递数据时被选中。一次只检查几个。无论如何,我投票给单选框,所以现在的问题是我必须根据他们传入的已检查变量进行过滤。所以在 WHERE 子句中需要动态过滤。我很少使用动态 SQL,而且我不是 DBA。因此,如果我用数据传入两个值,其中一个为 null,当其中一个值为空或 null 时,如何防止它在 Where 子句中过滤。
类似这样的:
DECLARE
@obj1 AS NVARCHAR(10) = 'data',
@obj2 AS NVARCHAR(10) = 'data',
@obj3 AS NVARCHAR(10) = '',
SELECT something FROM Table WHERE
IF @obj1 is not null then filter,
If @obj2 is not null then filter,
If @obj3 is not null then filter
【问题讨论】:
标签: sql dynamic filtering where