2017-05-06 62 views
2

SQL中的NOT!=運算符之間的區別是什麼?我無法理解這種差異。我猜他們是一樣的。SQL中NOT和!=運算符有什麼區別?

+0

http://stackoverflow.com/q/858344/5779732 http://stackoverflow.com/q/723195/5779732 –

+0

可能的重複[我應該使用!=還是<>在TSQL中不相等?] (http://stackoverflow.com/questions/723195/should-i-use-or-for-not-equal-in-tsql) –

回答

5

NOT否定以下條件可以與各種操作員一起使用。 !=<>運算符的non-standard alternative,意思是「不等於」。

例如

NOT (a LIKE 'foo%') 
NOT ((a,b) OVERLAPS (x,y)) 
NOT (a BETWEEN x AND y) 
NOT (a IS NULL) 

除了上述overlaps運營商也可以寫爲:

a NOT LIKE 'foo%' 
a NOT BETWEEN x AND y 
a IS NOT NULL 

在某些情況下可能更容易理解否定了完整的表達而不是重寫它的意思是相反的。


NOT可以但是與<>使用 - 但將沒有多大意義,但:NOT (a <> b)是一樣的a = b。類似地,你可以使用NOT來否定相等運算符NOT (a = b)a <> b相同

-1

NOT運算符和!=幾乎都有類似的用途。兩者都用在SQL查詢的Where子句中。

NOT運算符顯示特定條件不成立時的記錄。 例子:

SELECT * FROM Employees 
WHERE NOT Country='Germany' 

將讓你記錄與德國以外國家的所有員工。

!=操作類似地檢查是否兩個操作數的值相等與否,如果值不相等,則條件變爲真。

例子:

SELECT * FROM Employees 
WHERE Country!='Germany' 

將讓你與具有其它國家的國家列比德的所有行。

2

!=是一個二元運算符,如果它的兩個參數是不相等返回true。

NOT是一元運算符,其反轉其參數,一個布爾表達式。

你怎麼會認爲這些是相同的?

例如,當a的值小於10時,此表達式爲:a < 10爲真。此條件可以否定:NOT a < 10。否定這種情況在相反的情況下是正確的,即當不小於10時。這與a >= 10相同。

a是小於10的任何值或大於10的任何值時,表達式a != 10爲真。這是與NOT取消的條件完全不同的情況。

相關問題