私はストアドプロシージャを呼び出し、いくつかの変数を渡す状況があります。いくつかのケースでは、私はnullで渡すだろうし、すべてを返すようにしたい。次のように入力します(年齢は整数列です)。T-SQLここで、int = @ var/@ var = null?
[Table]
[Name] | [Age]
Mike | 22
Fred | 18
Bob | 22
SELECT * FROM [table] WHERE [Age][email protected]
22歳で渡すと、私はマイクとボブになります。同様に18を渡すと私はフレッドを得るでしょう。しかし、nullを渡したときに3行すべてを必要とする場合、@AgeVarを設定しない場合はどうなりますか?これは私の問題です。
編集:Sprocはかなり複雑で、私は実際には以下の回答の2倍のように2つにすることによってすべてのセクションを2倍にしたくありません。他の方法はありますか?
[Catch-all queries](http://sqlinthewild.co.za/index.php/2009/03/19/catch-all-queries/)を読む –
Joe'sをクリックする時間がない場合は非常に優れた記事にリンクしているので、動的SQLを使用するとこのアプローチよりも優れたパフォーマンスを発揮する可能性があることを実証しています。 – DOK
@DOK:明らかに、私は記事の著者ではない。その記事はGail Shawによって書かれました.Gail ShawはSQL Serverに関するよりもはるかに賢明です。 –