SQL仅在满足两个条件时如何排除行

时间:2021-06-19 17:28:33

标签: sql

如何编写 where 子句以仅在两件事为真时排除行?例如,我想要

的倒数
SELECT * FROM table
where 
start_num = end_num
 and time_taken < 100

所以我只想返回 start_num 不等于 end_num 的值,但前提是 time_taken 大于 100。这两件事都必须为 false 才能删除行。

我试过了

SELECT * FROM table
where (start_num <> end_num and tripduration > 100)

但这似乎没有给我正确的行数作为回报

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以简单地使用:

where not (start_num = end_num and time_taken < 100)

请注意,这并不完全相同,因为这也会过滤掉任何列具有 NULL 值的值。如有必要,可以轻松调整以处理该问题。

这个逻辑也可以写成:

where start_num <> end_num or time_taken >= 100