gpt4 book ai didi

sql - 从数据库中过滤唯一记录,同时删除双非空值

转载 作者:行者123 更新时间:2023-12-04 04:45:46 24 4
gpt4 key购买 nike

这有点难以用语言解释,但这里有一个我在 SQL 中尝试做的事情的例子。我有一个查询,它返回以下记录:

ID     Z
--- ---
1 A
1 <null>
2 B
2 E
3 D
4 <null>
4 F
5 <null>

我需要过滤此查询,以便每个唯一记录(基于 ID)仅在输出中出现一次,并且如果同一 ID 有多个记录,则输出应包含 Z 列值为 的记录。非空 .如果给定 ID 只有一条记录,并且 Z 列的值为 null,则输出仍应返回该记录。因此,上述查询的输出应如下所示:
ID     Z
--- ---
1 A
2 B
2 E
3 D
4 F
5 <null>

你会如何在 SQL 中做到这一点?

最佳答案

如果您需要同时返回 2-B 和 2-E 行:

SELECT * 
FROM YourTable t1
WHERE Z IS NOT NULL
OR NOT EXISTS
(SELECT * FROM YourTable t2
WHERE T2.ID = T1.id AND T2.z IS NOT NULL)

关于sql - 从数据库中过滤唯一记录,同时删除双非空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18211137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com