繁体   English   中英

如何排除sql中满足多个条件的行?

[英]How to exclude rows which satisfies multiple conditions in sql?

我有一张像

姓名 通话次数 通话时长(秒)
一个 2 0
3 52
C 3 0
D 5 78
2 21

我正在尝试排除呼叫计数为 3 且呼叫持续时间(秒)为 0 的记录。

我写的查询

 SELECT *
 FROM Table 
 WHERE (Call Count != 3
 AND Call Duration (sec) != 0)

我得到 output 作为

姓名 通话次数 通话时长(秒)
D 5 78
2 21

我需要的 output

姓名 通话次数 通话时长(秒)
一个 2 0
3 52
D 5 78
2 21

提前致谢

你要:

SELECT *
FROM Table 
WHERE NOT (call_count = 3 AND call_duration = 0);

根据德摩根定律,这可以重写为:

SELECT *
FROM Table 
WHERE call_count <> 3 OR call_duration <> 0;

我可能会在实践中使用第一个版本,因为它非常类似于您的英语语言要求。

这是一个简单的方法是,

  1. Select id(名称)在特定条件下我们不想要。

SELECT Name FROM Table_name WHERE CallCount = 3 and callDuration = 0;

  1. 将上面的查询放在一个子查询中,我们 select 只在上面查询那些不是 IN()的记录。

所以我们的最终查询将是

Select * from Table_name where Name not in(SELECT Name FROM Table_name WHERE CallCount = 3 and callDuration = 0);

Output:

姓名 通话次数 通话时长
一个 2 0
3 52
D 5 78
2 21

我希望这能帮到您。

谢谢:)

暂无
暂无

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

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