Sql-Server

SQL Server BIT 欄位上的等式 (=) 和不等式 (<>) 有什麼區別?

  • April 16, 2021

WHERE [BitField] = 1和有區別WHERE [BitField] &lt;&gt; 0嗎?

它們在邏輯上似乎是等價的。

然而,SQL Server 不同意並創建了稍微不同的執行計劃。(這很糟糕,因為第二種形式不能非常有效地使用現有索引。)

我是否遺漏了什麼,或者這只是不等式運算符的行為方式?

它們在邏輯上似乎是等價的。

他們是。即使ANSI_NULLS OFF,“使用 WHERE column_name <> XYZ_value 的 SELECT 語句也會返回所有非 XYZ_value 且非 NULL 的行。”

我在這裡找到了一個舊的回饋項目,你可以去投票。

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