Sql-Standard

<> 是什麼意思?

  • January 30, 2018

<>在以下WHERE子句中做了什麼,

WHERE posn_id <> rid
WHERE posn_id <> rid

將返回兩者都不是posn_id以及它們不同的所有行。rid``NULL

not equals operator它是一個簡單的comparison predicateWHERE語句)中的 ANSI SQL-Compliant 。通俗地說,就是*“不等式運算元”*。儘管許多數據庫都接受替代方案!=,但規範本身並未提及,如果支持!=,則不應使用。<>

SQL 使用三值邏輯,可能的值為true,falseunknown。該WHERE子句過濾掉除謂詞計算為 的行之外的所有行true

  • 如果一方或雙方是null,則運算符返回unknown
  • 在兩邊都不是=的不等式上,運算符返回 true。
  • 在相等時,<>返回 false。

在 null 處理上,類似的運算符是IS DISTINCT FROM將 null 視為普通值,來自 PostgreSQL 文件

對於非空輸入,IS DISTINCT FROM與運算符相同<>。但是,如果兩個輸入都null返回 false,如果只有一個輸入,null則返回 true。

有關比較運算符的 RDBMS 特定文件,另請參閱

這只是拼寫“不等於”運算符的另一種方式,可以替代!=

引用自:https://dba.stackexchange.com/questions/196532