Oracle Sql中的“!=”和“ <>”之间有什么区别吗?


Answers:



50

实际上,此运算符有四种形式:

<>
!=
^=

乃至

¬= -- worked on some obscure platforms in the dark ages

相同,但是在需要逐字匹配时(存储的大纲或缓存的查询)有不同的对待。


2
和变化一样NOT(x = y),也许!(x = y),等?
MatBailie 2012年

1
有趣!我不知道有关的信息^=(我在第一次将链接发布到手册时就亲自看到了)。但是您关于缓存查询的观点很不错。
a_horse_with_no_name 2012年

1
@Dems:中的Oracleboolean不是in中的一流类型SQL(与不同PL/SQL)。即 您无法SELECT 1 = 1 FROM dual在其他一些系统中喜欢。所以布尔有自己的一套运营商只能在逻辑环境(有效的WHEREHAVING或类似条款)。NOT是Oracle SQL(AFAIK)中唯一的布尔求反运算符。
Quassnoi 2012年

3
¬= -- worked on some obscure platforms in the dark ages-是的,它们被称为“ IBM大型机”。从男人变成男人,女人变成女人的时代开始,恐龙在地球上漫游,而计算机则被水冷。:-)
鲍勃·贾维斯

1

在大学里,我们教导我们“最佳实践”是为雇主工作时使用!=,尽管上述所有操作员都具有相同的功能。


14
SQL标准(仅)定义<>为“不等于”运算符。因此,我考虑将其用作“最佳做法”
a_horse_with_no_name 2012年

2
有趣。可能必须检查我所教的其他所有内容是否符合SQL标准。感谢您指出。

11
也许我的C语言遗产出来了,但我受不了<>并且更喜欢!=。主要是因为<>在我看来,“小于或大于”是假设数据类型具有隐式顺序(虽然对所有SQL数据类型都是正确的,但不一定是正确的),而!=在说“不等于”在非常纯粹的意义上
杰弗里·肯普

1
编码标准通常取决于雇主。如果您的雇主没有编码标准,那么团队选择一个公开的标准是一个好主意。
Denise Skidmore

-3

根据本文,!=执行速度更快

http://www.dba-oracle.com/t_not_equal_operator.htm


18
尽管很受欢迎,但该网站在许多主题上都不是可靠的来源。这个问题在前面已经讨论过。尽管有很多悬赏,但是没有人能够创建一个测试案例来证明性能上的显着差异。但我的报价仍然有效-如果您可以创建一个显示!=比其他不等于运算符更快的测试用例,我将给您500点悬赏。
乔恩·海勒2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.