Sql-Server
SQL Server BIT 欄位上的等式 (=) 和不等式 (<>) 有什麼區別?
WHERE [BitField] = 1
和有區別WHERE [BitField] <> 0
嗎?它們在邏輯上似乎是等價的。
然而,SQL Server 不同意並創建了稍微不同的執行計劃。(這很糟糕,因為第二種形式不能非常有效地使用現有索引。)
我是否遺漏了什麼,或者這只是不等式運算符的行為方式?
它們在邏輯上似乎是等價的。
他們是。即使ANSI_NULLS OFF,“使用 WHERE column_name <> XYZ_value 的 SELECT 語句也會返回所有非 XYZ_value 且非 NULL 的行。”
我在這裡找到了一個舊的回饋項目,你可以去投票。