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
,因此您必须将其考虑在内。谢谢。为了生成这段代码,我设法更改了过程。