我有一个包含4个参数的报告。我想不要求它们。问题是执行此操作的传统方法,创建16个OR / AND语句。如果我有10个不需要的参数,SOL语句就会失控。这有效,但有更简单的方法吗?
这就是我所拥有的:
主要数据集
select *
from table
where
table.one = @param1 OR @param1 IS NOT NULL
AND.....(etc.etc..)
@ param1,@ param2,@ param3,@ param4 :(默认值为null /空白)
Select some_column from any_table UNION SELECT '' as Nothing
答案 0 :(得分:2)
我一直这样做的方式是
WHERE
col1 = isnull(@col1, col1)
and col2 = isnull(@col2, col2)
...etc
所有你拥有的东西,有一些语义修正。