2017-05-06 60 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取消的条件完全不同的情况。

相关问题