0

GUIの検索エンジンにいくつかの値を入力しています

Name, Date, State

ユーザーが値を入力せずに [検索] をクリックすると、データベースからテーブル全体が取得されます。つまり、フィルタは適用されません。

だから例えば私は書いた

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

しかし、GUI に値を入力しないと、DB からレコードがフェッチされません。しかし、これらを条件ではなくフィルターとして機能させたいのです。 DB2を使用しています

正しい方法を教えてください。ありがとうございました。

4

2 に答える 2

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 に答える
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 に答える