繁体   English   中英

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

How to find a column with null and not null values in same table

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个表,我需要在其中找到具有null值和非null值的列。 例如,该列今天有一个值,但明天将为空。

第一个查询:

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  

但是此查询将带空值的记录带入,并且不会列出具有“ LastChangedDate”列的值的记录

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

2 个回复

使用LEAD()

SELECT *
FROM (
    SELECT 
        t.*, 
        LEAD(LastChangedDate) OVER(PARTITION BY AccountNumber ORDER BY EffectiveDate) LastChangedDateLead
    FROM test t
) x
WHERE LastChangedDate IS NULL OR LastChangedDateLead IS NULL

这将为您提供LastChangedDateNULL或下一条记录(对于同一客户并由EffectiveDate订购)的下一个记录具有作为LastChangedDateNULL值的LastChangedDate

注意:结果中将显示每个客户的最新记录:由于没有下一个记录,因此查询将认为其LastChangedDate也为NULL

这个关于数据库的演示用您的示例数据进行了返回:

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

一起做:

SELECT *
FROM test
WHERE (Account Number is Not Null and 'LastChangedDate' is Null)
1 如何基于同一表中的其他列匹配替换空值

抱歉,这是一个基本问题,但是我刚刚开始使用SQL和BigQuery。 我有一个表,其中包含2个用于不同事件的特定唯一标识符,如下所示: 记录的信息取决于事件类型,事件1记录两种类型的标识,事件2仅记录1种类型(以节省空间)。 如何将使用两种事件类型都记录下来的实例标识符作为查找, ...

3 如何在sql中比较同一个表中的空值

例如,我在表中有很多空变量。 我的目标是获取所有在#apple 中为空但在#pear 中不为空的列。 在这个例子中,它应该是 我知道如何在 python 和 R 中做到这一点,但需要帮助在 SQL 中解决这个问题。 谢谢 ...

2020-10-28 03:16:22 2 23   sql/ null
4 如何使用空列值对mysql表排序

我有一个具有以下架构的表。 我需要按点对表进行排序,如果存在img_link (不为null )的行也排在第一位。 只需要做的就是按int列排序,然后按varchar列排序。 需要一个类似的结果 提前致谢.. ...

5 如何连接同一个表中的多行并仅选择没有 NULL 值的列 + 为该列添加别名

我正在处理 SQL 查询以连接同一表的多行并选择相关列(仅 NOT NULL 列)。 以下是您必须了解的有关我的表格的信息: 我想要实现的是检索具有所有属性(命名)的所有产品。 为了说明,如果我有两个名为“attribute_1”和“attribute_2”的属性,最终结果应该是这样的: ...

8 用空值列修改表

如果我想通过更改其中一列中的值来更新表中的记录,该怎么办? 我在表中的记录只有一列为空(空值)。 我想更改这些值并将其他表中的值插入到这些记录中。 基本上我有一个表,其中一栏为空。 我不想附加到表的末尾,而是从记录1开始插入。 ...

9 Pandas 如何过滤同一列中的空值和零值

我一直在尝试修复此语法,但没有运气。 如果有人可以帮助我,我将不胜感激。 问题出在第一行和第二行。 由于同一列中的空值和零 (0) 值的过滤器不会同时发生,因此我得到一个空数据框作为输出。 有没有更好的方法来组合第 1 行和第 2 行,以便获得所需的输出。 如果我删除第一行或第二行,我会得到一个 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM