Oracle Not Equals Operator

kur*_*der 19 sql oracle

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

他们之间有什么区别?我听说!=比其他字符串更有效率.任何人都可以对此声明作出定性评论.

Qua*_*noi 26

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

但是请注意,从解析器的角度来看,它们仍然被认为是不同的,也就是为!=不匹配<>或者定义的存储轮廓^=.

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

  • @shanyangqu - 从该链接中读取的重要部分是"Scott Canaan的这条说明*暗示*在Oracle 10.2中,它们可以产生不同的执行计划,因此执行速度不同" - 但最终,效果并非如此已经证实了几种(有效的,IMO)理论可以解释观察到的行为 - 没有一种理论表明不同的语法根本没有任何区别 - 例如,改变查询的任何部分可能会导致重新解析语句,或匹配不同的存储轮廓. (5认同)

Jus*_*ave 6

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

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