这是我的代码:
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 NULL
4 NULL
我如何获得'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值?
答案 0 :(得分:4)
试试这个:
SELECT RecordID,RecordValue
FROM @TABLE
WHERE RecordValue NOT IN ('200') OR RecordValue IS NULL
当值为NULL
时,与其进行比较始终为NULL
,因此您必须将其考虑在内。
答案 1 :(得分:1)
像这样:
SELECT RecordID,RecordValue
FROM @TABLE
WHERE ISNULL(RecordValue,'') NOT IN ('200')