0

コンテンツがあるか NULL かに関係なく、すべての可能性をどのように返しますか?

NULL でないものをすべて返したい場合:

SELECT * FROM table WHERE column LIKE '%'

そして、すべての NULL を返したい場合:

SELECT * FROM table WHERE column IS NULL

両方を組み合わせるにはどうすればよいですか?パラメータ化しているので、できる必要があります。私のアプリケーションのフロント エンドには、複数のオプション ALL (任意のコンテンツまたは NULL) または特定の値があります。

どうすればこれを達成できますか?

編集:

もっとはっきりさせてください。このようなものを表示するドロップダウンリストがあります

-すべて選択- チーム A チーム B ...

したがって、-Select All- が選択されている場合は、すべての NULL と任意のチームの NULL を返すクエリが必要です。

チーム A が選択されている場合、チーム A のみを表示し、NULL を表示する必要はありません...

単一の変数 (パラメーター) だけでクエリを変更することはできません

4

8 に答える 8

3

NULLパラメータ値が「すべて」を意味すると仮定します

WHERE Team = @Team OR @Team IS NULL

あなたが2008年以降で、これを使用していない限り、OPTION (RECOMPILE)最適な計画を提供することはできません.

T-SQL の動的検索条件を参照してください

于 2013-09-25T15:23:29.523 に答える
2

それはかなり簡単です。NULLS のみを取得するには:

SELECT * FROM table 
WHERE column IS NULL

NOT NULLS のみを取得するには:

SELECT * FROM table 
WHERE column IS NOT NULL
-- could be this if your example is not representative
-- WHERE column IS NULL OR column LIKE '%whatever%'

そして、すべて(フィルターなし)に対して、次のようにします:

SELECT * FROM table

さらなる解明:

あなたの例では、コードが既に記述されていて、WHERE 句のみを渡すことができる場合は、次のようにすることができます。

WHERE <insert here>

column IS NULL -- just nulls
column = 'teamX' OR column IS NULL -- nulls or 'teamX'
column IS NOT NULL -- any value, but no nulls
1=1 -- for the case where you don't really want a WHERE clause. All records

これがコードを構成する最良の方法のようには思えませんが、変更できないものによって既に制限されている場合は、それを行う必要があると思います.

于 2013-09-25T15:18:25.427 に答える
1

おそらく、「パラメーターを渡すことができるか、パラメーターを NULL にすることができる」という意味ですか?

もしそうなら、このような何かがうまくいくはずです

SELECT * FROM table WHERE param IS NULL OR column LIKE '%' + param '%'

同様に、パラメータが「すべてを選択する」ことを意味するキーワード「ALL」を渡した場合、次のようになります。

SELECT * FROM table WHERE param = 'All' OR column LIKE '%' + param '%'
于 2013-09-25T15:23:14.357 に答える
1

私があなたの質問を理解したなら、これはあなたが探しているものです

SELECT * 
FROM table 
WHERE column LIKE '%' or column Is null
于 2013-09-25T15:18:17.753 に答える
1

あなたselect * from tableが欲しいものを手に入れますか?

于 2013-09-25T15:18:18.890 に答える
0

1 つのケースは、where 句を使用しないことです。

または、使用または条件付けすることができます

where (column is null or column like '%something%')
于 2013-09-25T15:18:09.203 に答える