我使用SSRS连接到Teradata并且有多个参数,其中许多参数寻求多个值。
挑战是所有这些参数可能无法始终填充,有时可能是空白。所以我使用的逻辑如下 -
Select * from Table
Where
(Param1 in (?) or ? = '')
AND
(Param2 in (?) or ? = '')
AND
(Param3 = ? OR ? = '')
这给出了一个错误,说明预期的事情,如Precedes或Exists,In或者包含..........,
任何人遇到类似的问题?请帮忙。
答案 0 :(得分:0)
我不确定Teradata,但在SQL Server中它会像这样完成..
SELECT * FROM MyTable
WHERE
(ColumnA IN (@Param1) OR ISNULL(@Param1,'')='')
OR (ColumnB IN (@Param2) OR ISNULL(@Param2,'')='')
我已经使用ISNULL来考虑SSRS中允许参数为NULL的可能性。