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)

但这似乎并没有给我返回的正确行数

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

where not (start_num = end_num and time_taken < 100)

请注意,这与并不完全相同,因为这也会过滤掉任何列具有NULL值的值。如果需要的话,可以很容易地调整它来处理这个问题。

这个逻辑也可以写成:

where start_num <> end_num or time_taken >= 100

最新更新