`<>` 是什么意思?

Har*_*ari 0 sql-standard operator

<>在下面的WHERE子句中做什么,

WHERE posn_id <> rid
Run Code Online (Sandbox Code Playgroud)

Bra*_*adC 14

 WHERE posn_id <> rid
Run Code Online (Sandbox Code Playgroud)

将返回所有行,既posn_idridNULL和他们是不同的。

它是not equals operator一个简单的comparison predicate(WHERE语句) 中的 ANSI SQL-Compliant 。通俗地说,它是“不等式运算符”。尽管许多数据库接受替代方案!=,但规范本身并未提及!=,如果<>支持,则不应使用。

SQL 使用三值逻辑,可能的值为true,falseunknown。该WHERE子句过滤掉除谓词计算结果为 的行之外的所有行true

  • 如果任一方或双方为null,则运算符返回unknown
  • 在不等式中,两边都不是=,运算符返回真。
  • 相等时,<>返回 false。

关于空值处理,一个类似的运算符是IS DISTINCT FROM将空值视为普通值,来自 PostgreSQL 文档

对于非空输入,IS DISTINCT FROM<>运算符相同。但是,如果两个输入都是,null则返回 false,如果只有一个输入,null则返回 true。

有关比较运算符的 RDBMS 特定文档,另请参阅

  • @KumarHarsh 说真的,你在说什么? (2认同)