Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在同一个表中查找具有null和NOTNULL值的列_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 如何在同一个表中查找具有null和NOTNULL值的列

Sql 如何在同一个表中查找具有null和NOTNULL值的列,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个表,需要在其中找到一个包含null和notnull值的列。例如,列今天有一个值,但明天变为空 第一个问题: select * from test where Account Number is Not Null and LastChangedDate is Null 但此查询会带来具有空值的记录,而不会列出具有LastChangedDate列值的记录 下面是示例记录 AccountNumber EffectiveDate LastChangedDate 1234567 2

我有一个表,需要在其中找到一个包含null和notnull值的列。例如,列今天有一个值,但明天变为空

第一个问题:

select * from test where Account Number is Not Null and LastChangedDate is Null  
但此查询会带来具有空值的记录,而不会列出具有LastChangedDate列值的记录

下面是示例记录

AccountNumber EffectiveDate LastChangedDate 
1234567     2019-05-31          2018-09-14
1234567     2019-06-30          2018-09-14
1234567     2019-07-31           NULL
第二个问题:

select * from test where Account Number is Not Null and 'LastChangedDate' is Null  
但此查询会带来具有null值的记录,而不会列出具有“LastChangedDate”列值的记录

预期:能够检索具有空值和非空值的同一列的所有记录,并省略填充了所有值的记录

使用
LEAD()

这将为您提供
LastChangedDate
NULL
的记录,或者下一条记录(针对同一客户并按
EffectiveDate
订购)的
NULL
值为
LastChangedDate

NB:每个客户的最新记录将显示在结果中:由于没有下一条记录,查询将考虑其<代码> LSTOSTEDATEDATE < /C> > <代码> NUL> <代码> >

与示例数据一起返回:

AccountNumber | EffectiveDate | LastChangedDate | LastChangedDateLead ------------: | :------------------ | :------------------ | :------------------ 1234567 | 30/06/2019 00:00:00 | 14/09/2018 00:00:00 | null 1234567 | 31/07/2019 00:00:00 | null | null 账号|生效日期|上次变更日期|上次变更日期 ------------: | :------------------ | :------------------ | :------------------ 1234567 | 2019年6月30日00:00:00 | 2018年9月14日00:00:00 |空 1234567 | 2019年7月31日00:00:00 |空|空 一起做吧:

SELECT *
FROM test
WHERE (Account Number is Not Null and 'LastChangedDate' is Null)

谢谢GMB,但我只得到空值的记录,实际上我需要得到与LastChangedDate值填充相同的帐号,如果是空的,那么也显示空记录,上面的查询只检索空记录在这种情况下,我不知道数以百万计的帐号records@Raj:我只获取具有空值的记录:不,您不获取,您获取的记录具有空的
LastChangedDate
,或者其下一条记录具有空的
LastChangedDate
。我在我的答案中添加了一个DB FIDLE tom供您参考。抱歉,是的,我确实看到日期后面有空值,最初有很多记录只有空值。非常感谢GMB的帮助,请将此关闭。谢谢GMB,您的查询工作正常,请关闭此问题。我接受了答案,非常感谢您的帮助。
SELECT *
FROM test
WHERE (Account Number is Not Null and 'LastChangedDate' is Null)