我有一个带有WHERE
子句的查询
WHERE [column1] = 'some value'
AND [column2] IS NULL
我想根据参数使IS NULL
部分为可选。
例如,如果提供了param1
的值,则应忽略WHERE
子句的这一部分。
AND [column2] IS NULL
编辑:
我不愿意使用动态SQL,因为它会超出我这样做的目的。
有什么想法吗?
答案 0 :(得分:2)
House
如果设置了@ param1,则第二个条件将始终为true,否则,它将检查[column2]是否为空
答案 1 :(得分:0)
您可以简单地执行此操作。此外,您也可以使用IsNull()
。
WHERE ((@param1 IS NULL OR @param1 = '') and [column1] = 'some value' and [column2] IS NULL)
OR (@param1 IS not NULL and [column1] = 'some value');
答案 2 :(得分:0)
这应该有效:
WHERE (ISNULL('some value', '') = '' OR column1 = 'some value')
AND (ISNULL('some value', '') = '' OR column2 = 'some value')