我很难解释这一点,所以我提前道歉。我在Microsoft SQL数据库中有一个表包含重复记录。在某些情况下,每个重复记录都应该包含至少1行,其中C列的值为“是”。
如何查询尚不存在的记录?
表t:
| Column A | Column B | Column C |
| -------- | -------- | -------- |
| 1 | Cat | No |
| 2 | Cat | No |
| 3 | Cat | No |
| 4 | Dog | Yes |
| 5 | Dog | No |
| 6 | Fox | No |
| 7 | Fox | No |
预期输出如下所示:
| Column A | Column B | Column C |
| -------- | -------- | -------- |
| 1 | Cat | Missing Yes |
| 2 | Fox | Missing Yes |
我尝试基于网上找到的示例使用NOT IN
,但没有返回期望的结果。
SELECT Column B
FROM t
WHERE Column C NOT IN
(SELECT Column B
FROM t
WHERE Column C = 'Yes'
)
2条答案
按热度按时间zxlwwiss1#
可以使用公用表表达式解决此问题
更多here
5n0oy7gb2#
我看到您已经接受了这个问题的答案,但是如果您只是想要一个不包含YES的B列值的不同列表,那么这可能是一个替代解决方案: