したがって、この画面には、基準セクションである多くのテキストボックスがあります。
例 :
名前を入力:_____
年齢を入力してください:_____
高さを入力してください:_____
Search !
したがって、クエリは次のようになります。
select * from....
where
...
and Name = isnull(@name,Name)
and Age= isnull(@Age,Age)
and Height= isnull(@Height,Height)
大丈夫だ。
ここで、3 つのパラメーターすべてがnull
問題は、(たとえば)列 Name
に が含まれている状況にありますnull
。( db 列に値がありません)
そして、それはこのようなものをもたらします
and Name = isnull(@name,Name)
(列 [名前] の値が「null」である
ため
and Null = isnull(Null,Name)
)
and Null = Null
そして、これが強打する場所です。(null !=null のため)
set ansi null
ソリューションを使用したくありません。
これに対する他のエレガントなソリューションはありますか?
編集 :
うーん...私はこれを使用することができます
ISNULL(Name ,1) = ISNULL(@Name ,ISNULL(Name ,1))
しかし、それが最善の解決策であるかどうかはわかりません...