0

したがって、この画面には、基準セクションである多くのテキストボックスがあります。

例 :

名前を入力:_____

年齢を入力してください:_____

高さを入力してください:_____

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))

しかし、それが最善の解決策であるかどうかはわかりません...

4

2 に答える 2