1

我有一个包含 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:(默认值空/空白)

Select some_column from any_table UNION SELECT '' as Nothing
4

1 回答 1

2

我一直这样做的方式是

WHERE 
  col1 = isnull(@col1, col1) 
  and col2 = isnull(@col2, col2)
  ...etc

差不多就是你所拥有的,还有一些语义更正。

于 2012-07-06T12:57:08.093 回答