2

これは私のコードです:

DECLARE @TABLE TABLE
(
    RecordID BIGINT,
    RecordValue NVARCHAR(10)
)

INSERT INTO @TABLE(RecordID,RecordValue)
VALUES  (1,'100')
       ,(2,NULL)
       ,(3,'200')
       ,(4,NULL)
       ,(5,'200')

SELECT RecordID,RecordValue
FROM @TABLE
WHERE RecordValue NOT IN ('200') 

出力:

1 100

欲望の出力:

1 100

2ヌル

4ヌル

「NULL」値も取得するにはどうすればよいですか?

実際、私のSQLステートメントは多くのプロシージャと関数によって生成されます.ISNULL関数を使用するなどの操作には制限があります. 最終ステートメントは次の形式です。

WHERE RecordValue NOT IN ('CSV...') 
WHERE RecordValue IN ('CSV...') 
or combinatnation from both 
RecordValue NOT IN ('CSV...') AND RecordValue IN ('CSV...') 

この方法で NULL 値も取得する方法はありますか?

4

2 に答える 2

4

これを試して:

SELECT RecordID,RecordValue 
FROM @TABLE 
WHERE RecordValue NOT IN ('200') OR RecordValue IS NULL

価値がある場合NULL、それとの比較は常にNULLなので、それを考慮に入れる必要があります。

于 2012-09-11T11:54:00.740 に答える
1

このような:

SELECT RecordID,RecordValue
FROM @TABLE
WHERE ISNULL(RecordValue,'') NOT IN ('200') 
于 2012-09-11T11:53:51.670 に答える