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 回答