【问题标题】:Is there a reason ANSI SQL uses <> as a comparison operator? [closed]ANSI SQL 使用 <> 作为比较运算符是否有原因? [关闭]
【发布时间】:2014-09-22 04:48:46
【问题描述】:

我确信比较运算符是&lt;&gt; 是有原因的。我在谷歌上搜索并试图理解它;我从功能的角度读到它与索引有关;我要解决的是使用“小于和大于”背后的语义。

任何值怎么可能同时小于和大于?这不是说&lt;&gt; 总是返回false吗?

【问题讨论】:

  • 你能描述一下,什么样的Stack Overflow用户会知道这个问题的答案?
  • 是的 - 历史原因。在 C 引入“!=”之前,“”在许多语言中的意思是“不相等”。
  • &lt;&gt; 表示“不等于”,而不是“小于”和“大于”的组合
  • 事实上,像 >= 和
  • @FoggyDay 非常感谢您提供的示例。 @BadZen 是的,你是对的,似乎所有联合运算符都是 OR 而不是 AND

标签: sql ansi-sql


【解决方案1】:

一些早期的计算机语言使用&lt;&gt; 作为不等式,例如最初的 BASIC。

您最好将&lt;&gt; 视为不是less than AND greater than 而是less than OR greater than,这样就很合理了。

或者只是做其他人所做的事情并将其视为“不等于” - 我见过很多变体,例如 &lt;&gt;!=/= 甚至 ¬=

我不会对各种语言中哪些字符构成标记的哲学太深入。那就是疯狂。

例如,在 C 中,表达式 delta != 7 可以读作 DELTA = 7(想想“把 delta 当作感叹号”)。

a == b 表示您真的确定a 等于b :-)

【讨论】:

  • 哦,当然。非常感谢。
  • FORTRAN 使用了.NE.(或者可能是.NEQV.),因为&lt;&gt; 符号在当时并不是所有字符集的标准部分。
猜你喜欢
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 2013-07-23
  • 2013-11-26
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多