フィールドが値であるかどうか、またはフィールドに値が含まれているかどうかに基づいてクエリをフィルタリングするT-SQLcaseステートメントを作成しようとしてNULLいます。あなたが割り当てることができれば、NULLまたはNOT NULLケースの結果としてそれは簡単でしょうが、それは可能ではないようです。
これが擬似コードです:
WHERE DateColumn = CASE @BitInput
WHEN 0 THEN (all null dates)
WHEN 1 THEN (any non-null date)
WHEN NULL THEN (return all rows)
私の理解では、WHEN 0条件はまったく条件を提供しないことで達成できますWHEN(値を返すためNULL)。
条件はWHEN 1ワイルドカード文字を使用できるようですが、型変換に関してエラーが発生します。列をそれ自体に割り当てると、これが修正されます。
私はその状態に対して何をすべきか分かりませんWHEN NULL。私の内部ロジックは、列をそれ自体に割り当てることでこれを解決できると考えているようですが、上記のようには解決しません。
動的SQLを使用してこれを再作成しましたが、さまざまな理由から、ネイティブコードで作成することをお勧めします。
ご意見をいただければ幸いです。ありがとう。