Oracle Not Equals Operator

时间:2010-11-03 17:24:59

标签: sql oracle

有两个不等于运算符 - !=<>

他们之间有什么区别?我听说!=比其他字符串更有效率。任何人都可以就这一陈述发表定性评论。

6 个答案:

答案 0 :(得分:26)

它们是相同的(第三种形式,^=)。

但请注意,从解析器的角度来看,它们仍被视为不同,即为!=定义的存储大纲将与<>^=不匹配

这与PostgreSQL不同,其中解析器在解析阶段处理!=<>,因此您不能将!=<>重载为不同的运算符

答案 1 :(得分:6)

两者之间没有功能或性能差异。使用适合您的语法。

就像在声明函数或过程时使用AS和IS一样。它们是完全可以互换的。

答案 2 :(得分:4)

它们是相同的,但我听说有人说开发人员使用!=而BA使用<>

答案 3 :(得分:4)

正如其他人所说,没有区别。 (作为一个完整性检查,我做了一些测试,但这是浪费时间,当然它们也是一样的。)

但实际上有四种类型的不等运算符:!=,^ =,&lt;&gt;和¬=。见this page in the Oracle SQL reference。在网站上,第四个运算符显示为ÿ=但在PDF中显示为¬=。根据文档,其中一些在某些平台上不可用。这真的意味着¬=几乎从不起作用。

出于好奇,我真的很想知道¬=工作的环境。

答案 4 :(得分:1)

使用类似mybatis的框架的开发人员更喜欢!= over&lt;&gt ;.理由是&lt;&gt;将需要包装在CDATA中,因为它可以解释为xml语法。对眼睛也很容易。

答案 5 :(得分:0)

区别在于:

“如果您使用!=,则返回亚秒。如果您使用<>,则需要7秒才能返回。两者都返回正确的答案。”

Oracle not equals (!=) SQL operator

此致