当前位置:  开发笔记 > 后端 > 正文

SQL查询中NOT(x> y)和(x <y)之间有什么区别?

如何解决《SQL查询中NOT(x>y)和(x<y)之间有什么区别?》经验,为你挑选了2个好方法。

以下查询之间有什么区别:

SELECT * FROM employee  WHERE NOT(start_date > '01-JAN-1970');

而这个查询:

SELECT * FROM employee  WHERE start_date < '01-JAN-1970';

有什么区别,如果有的话,如何NOT(x > y)使用不同(x < y).谁能提供一个例子?

谢谢.



1> Quassnoi..:

MySQLPostgreSQL

SELECT * FROM employee WHERE not(start_date > '01-JAN-1970')

不会使用INDEXon,start_date如果有的话,他们的优化器不够聪明.

否则,如果你纠正其条件不符合的情况下(任exaсtly一个不严格not(start_date >= '01-JAN-1970')start_date <= '01-JAN-1970'),查询是相等的.



2> Tony Andrews..:

非等价的

SELECT * FROM employee WHERE not(start_date > '01-JAN-1970');

SELECT * FROM employee WHERE start_date <= '01-JAN-1970';

SELECT * FROM employee WHERE start_date < '01-JAN-1970';

因为那会错过start_date = '01 -JAN-1970'的情况

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有