我在 GUI
上的搜索引擎上输入了一些值Name, Date, State
如果用户没有输入任何值,并点击“搜索”,他应该从数据库中获取整个表格。即没有应用过滤器。
所以例如我写了
Select Name, State, Date from Table where Name='' and State= '' and Date= ''
但是如果我在GUI中没有输入任何值,则不会从DB中获取任何记录。 但我希望这些作为过滤器而不是条件。 我正在使用DB2
请建议我正确的方法。谢谢。
答案 0 :(得分:0)
以下查询对于此目的是正确的,
Select Name, State, Date
from Table
where (:Name_Var is null OR Name = :Name_Var AND
(:State_Var is null OR State =:State_Var) AND
(:Date_Var is null OR Date = :Date_Var)
答案 1 :(得分:0)
试试这个
SELECT Name, State, Date
FROM
Table
WHERE
CASE WHEN ISNULL(@Name,0)=0 THEN 0 ELSE Name END = ISNULL(@Name,0)
AND
CASE WHEN ISNULL(@State,0)=0 THEN 0 ELSE State END = ISNULL(@State,0)
AND
CASE WHEN ISNULL(@Date,0)=0 THEN 0 ELSE Date END = ISNULL(@Date,0)