0

我在GUI上的搜索引擎上输入一些值

Name, Date, State

如果用户没有输入任何值,然后单击“搜索”,他应该从数据库中获取整个表。即没有应用过滤器。

所以例如我写了

Select Name, State, Date from Table where Name='' and State= '' and Date= ''

但是如果我在 GUI 中没有输入任何值,则不会从数据库中获取任何记录。但我希望这些充当过滤器而不是条件。 我正在使用 DB2

请建议我正确的方法。谢谢你。

4

2 回答 2

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) 
于 2013-04-23T10:13:24.213 回答
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)
于 2013-04-23T10:09:07.940 回答