4

在编写查询时,当我的意思是“不等于”时,使用 <> 或 != 是否重要?

根据下面的示例,无论我使用 <> 还是 !=,null 似乎都不会受到影响。这是审美问题吗?

declare @fruit table
(
FruitID int,
FruitName varchar(50)
)

insert into @fruit (FruitID, FruitName) Values (1, 'Apple')
insert into @fruit (FruitID, FruitName) Values (2, 'Orange')
insert into @fruit (FruitID, FruitName) Values (3, 'Pineapple')
insert into @fruit (FruitID, FruitName) Values (null, 'Not a Fruit')

select *
from @fruit
where fruitid<>2

select *
from @fruit
where fruitid!=2
4

1 回答 1

8

<>运算符是正式sql标准定义的运算符。!=操作符是很多开发者比较熟悉的别名。它们以相同的方式做同样的事情,并且在我使用过的任何支持两者的 dbms 系统上都没有性能或行为差异。

大多数数据库系统都支持!=,但也有例外。因此,理论上,<>应该更便携,因为它是标准。在实践中,我猜只有 implement!=的数量和只有 implement 的数量一样多<>

我来自 C++ 背景,在我早期使用 SQL 的时候,我一开始甚至不知道<>存在。离开学校没多久我就知道了<>,当时我不得不花一些时间在一个 VB 代码库上工作,当时认为这只是开发人员的一个怪癖,他们更喜欢 VB 风格的 sql 运算符。他们的 VB 客户端代码。很久以后我还在用!=。后来我知道<>这是标准,并且可能从 86 年开始使用,那时 VB 还只是“BASIC”。从那以后,我<>几乎只使用过。

于 2013-11-08T21:24:05.037 回答