Tsql T-SQL中的NOT不捕获空值

Tsql T-SQL中的NOT不捕获空值,tsql,null,where,Tsql,Null,Where,这是我的代码: 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 @TA

这是我的代码:

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') 
输出:

1100

期望输出:

1100

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...') 
有没有办法通过这种方式获取空值?

如下所示:

SELECT RecordID,RecordValue
FROM @TABLE
WHERE ISNULL(RecordValue,'') NOT IN ('200') 
试试这个:

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

当值为
NULL
时,与它的比较总是
NULL
,因此您必须将其考虑在内。

谢谢。为了生成这段代码,我设法更改了过程。