0

SSRSレポートビルダーを使用して1つのレポートを作成しました。レポートにはいくつかのパラメーターが含まれており、パラメーターの1つには、データベースからフェッチする値とは別にNULL値が含まれています。

ここで、そのパラメーターからNON-NULL値を選択すると、IN句を使用しているため、レポートは正常に実行されます(パラメーター値は複数選択されているため)。しかし、そのパラメーターからNULL(および他の値ではない)を選択すると、INはNULLを受け取らないため、IN句は機能しません。

したがって、クエリを変更して、--- NULL値とNON-NULL値の両方を処理できるようにするにはどうすればよいですか?

4

2 に答える 2

1

次の例では、すべての NULL を強制的に含め、値が欠落していることをレポートのユーザーに明確にしています。

SELECT ISNULL([ColumnNameHere],'[ None ]') AS [ColumnNameHere]
WHERE ISNULL([ColumnNameHere],'[ None ]') IN (@MultiParam)
于 2012-10-26T16:27:44.063 に答える
0

私は以前にこの問題に遭遇しました。

解決策は NULL を渡すことではなく、実際には DB が使用しないデフォルト値を渡すことです。理想的ではありませんが、実装の癖のようです。

だから、あなたが探している場合にはThingId. ThingIdは決してなりえないことがわかっている代理キーです>0

anyの値として 0 を使用し、NULL の代わりにそれを渡し、クエリを次のように変更します。

WHERE
  @ThingId = 0 OR ThingId = @ThingId
于 2012-10-26T12:45:32.043 に答える