问题 Oracle不等式运算符:¬=


Oracle SQL 按说 有四个不等运算符:

  1. !=
  2. ^=
  3. <>
  4. ¬=

PL / SQL运算符 有点不同。他们允许 ~= 代替 ¬=。但这与此没有直接关系。)

该手册包含警告“在某些平台上可能无法使用某些形式的不平等条件”。这适用于至少第4种选择, ¬=。该语法在Windows,Linux或Solaris上不适用于我。

我的问题是:

  1. 什么平台支持 ¬=
  2. 什么平台,如果有的话,做  支持 !=^=, 要么 <>?是否值得避免其中一个确保我的代码尽可能便携?

4351
2018-02-16 05:15


起源

当然他已经看过了,他提交了一个答案...... - Reid
您链接到的文档参考未提及第四个选项。前三个都工作正常。 - Jeffrey Kemp
@JeffreyKemp如果你看“(注1)”:“带有十进制值170的ASCII字符”。如果您打开文档的PDF版本(页面右上角的PDF链接),您可以在第473页上看到该字符。 - Jon Heller
@jonearles:那里 是 没有十进制值为170的ASCII字符。实际上,根据定义,ASCII字符最多只能达到127。所以他们可能意味着一些其他基于ASCII的编码。人们只能猜出他们的意思。 - Joachim Sauer
@JoachimSauer - “¬”是IBM大型机上的“非”字符,虽然有一个扩展的ASCII定义,但它实际上只存在于EBCDIC中。 AFAICT仅在IBM大型机上受支持 - 请参阅下面的答案。 - Bob Jarvis


答案:


以下是我对各种不等运算符的推导和可用性的最佳猜测:

  • <> - 原本的。由多种语言(BASIC,Pascal等)使用。      可能适用于所有平台。
  • !=  - 来自C和它的衍生物(C,C ++,Java,C#等等,等等)。我预计      这适用于所有平台。
  • ¬=  - 此运算符可能仅在IBM大型机上可用。我知道      我刚刚尝试过,它在HP-UX上不受支持。亲近的      在我心中从PL / I语言(即大写'i',而不是'1',      虽然它代表罗马数字“一”,因此也就是语言      是“pee ell one”。我知道你想知道:-),IBM的混蛋      继子......嗯,我的意思是FORTRAN,Algol的“令人愉快的组合”,      还有一点COBOL。 PL / I是第二台高级计算机      我学到的语言和我用来谋生的第一语言      软件开发人员。从美好的旧日,当男人是男人,      女人是女人,电脑是水冷的。不是那样的      对,乔赛亚..? (并且可以为那些人提供十分额外的功劳      确定那条线来自哪里!)
  • ^=  - 我怀疑这与前面的“仅限IBM”相似      运营商,使其成为在计算机上使用的“IBM-ish”运营商      缺少IBM“¬”(非)字符。可能在所有平台上都受支持。

我总是使用FWIW <>。与旧程序员一样,旧习惯很难。 :-)


10
2017-09-14 11:41



+1“for pee ell one”:-) - Frank Schmitt


我总是使用!=。我不知道其他人,但是!=在Windows和Linux上一直对我有用。


2
2018-02-16 05:20



在Solaris上也是如此。 - rMX
......好* nix ...... - Reid