sql中的“不等于”

SJY发表于:2015年10月30日 11:24 • 阅读:

最近突然发现两种在运行的时候都可以,请问哪位能说一下区别:

msdn中的说法如下,看不明白有什么不同:

!=(不等于)(Transact-SQL)

测试某个表达式是否不等于另一个表达式(比较运算符)。如果任何一个操作数为 NULL,或两个都为 NULL,则返回 NULL。其功能与 <>(不等于)比较运算符相同。

<>(不等于)(Transact-SQL)

比较两个表达式(比较运算符)。当比较非空表达式时,如果左操作数不等于右操作数,则结果为 TRUE;否则结果为 FALSE。如果任何一个操作数为 NULL 或两个都为 NULL,则请参阅主题 SET ANSI_NULLS (Transact-SQL)

这个问题好,的确要有这样的追究到底的精神才能学到东西。我也来谈谈我的看法。

set statistics time on
select * from Person.Address where StateProvinceID <>79
set statistics time off;


set statistics time on
select * from Person.Address where StateProvinceID !=79
set statistics time off;

这是我用AdventureWorks2008测试的。时间分别是

SQL Server 执行时间:
  CPU 时间 = 46 毫秒,占用时间 = 485 毫秒。

SQL Server 执行时间:
  CPU 时间 = 31 毫秒,占用时间 = 624 毫秒。

多次执行发现<>时间比较短。
但是我实在不知道有什么不同。不过既然执行时间不同,我觉得还是会有不同的地方,要是有什么答案记得告诉我。

欢迎转载,但请保留原文地址 http://www.sjyhome.com/mysql/183.html

回复(0)