0

テーブルに名前付きの数値列がありidます。ID が 1,2,3 のクエリと、「null」が含まれているクエリを選択したいと考えています。

次のようなクエリを使用したくありません。

SELECT * FROM MYTABLE WHERE ID IN (1,2,3) OR ID IS NULL

次のようなものを使用できますか:

SELECT * FROM MYTABLE WHERE ID IN (1,2,3,null)

これは可能ですか?上記のクエリは、次の場合と同じ結果を返します

SELECT * FROM MYTABLE WHERE ID IN (1,2,3)
4

4 に答える 4

3

簡潔な答え?IS NULLいいえ。述語を使用する必要があります。NULL != NULL (2 つの NULL 値が必ずしも等しいとは限らない) であるため、どのタイプのequals NULL,in (..., NULL)も機能しません。

于 2012-05-10T05:30:53.387 に答える
1

オラクルを使用している場合、これが解決策になる可能性があります。

SELECT * FROM MYTABLE WHERE NVL(ID,-1) IN (1,2,3,-1)
于 2012-05-10T05:31:09.923 に答える
0

SQLサーバーで

SELECT * FROM MYTABLE WHERE isnull(ID,0) IN (1,2,3,0)
于 2012-05-10T07:31:16.417 に答える
0

以下を使用する必要があります。

SELECT * FROM MYTABLE WHERE ID IN (1,2,3) OR ID IS NULL

NULL には常に IS NULL の特別な処理が必要です。

于 2012-05-10T05:31:05.990 に答える