2017-06-29 19 views
0

SSRSレポートを作成していますが、データが入力されている場所でパラメータの1つをオプションにしたいとします。ここでSQL - 入力がNULLまたは入力されていない場合、where句を無視します。

はよりよく理解するための例のクエリです:

SELECT 
C1 
,C2 
,C3 
FROM 
db_Database..tb_Table 
WHERE 
tb_Table_DateTime between [THEN] and [NOW] 
AND 
tb_Table_Integer IN (@Integer) 

私は私のクエリで、私は全体を無視することができ、場合うまくしようとしている:

AND tb_Table_Integer IN (@Integer) 

ラインユーザーならば任意の番号を入力しないことを選択します。

バンスでは、特に指定しない限り、すべてのデータが返されます。

クエリでは不可能な場合、これはVisual Studioで達成できますか?

乾杯。

答えて

2

これは、一般的に行うことによって処理されます

WHERE . . . AND 
     (@Integer IS NULL OR tb_Table_Integer = @Integer) 

IN (@Integer)を使用しないでください。それは、あなたが@Integerがリストになると思うことを暗示しています。それは不可能です。

0

これを行う最も一般的な方法は、coalesceまたはnullifです。このように:

WHERE coalesce(@integer,tb_Table_Integer) = tb_Table_Integer 
関連する問題