在编写查询时,如果我使用<>或!=,当我的意思是"不等于"时,这是否重要?
根据下面的示例,无论是否使用<>或!=,空值似乎都不会受到影响.这是美学的吗?
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
Run Code Online (Sandbox Code Playgroud)
该<>运营商是正规的SQL标准定义的操作符.该!=运营商是一个别名是许多开发人员更熟悉.它们以相同的方式执行相同的操作,并且在我支持的任何dbms系统上都没有性能或行为差异.
大多数数据库系统都支持!=,但也有例外.因此,从理论上讲,<>应该更便携,因为它是标准.在实践中,我猜有大约只有实现!=,因为只有实现<>.
我来自C++背景,在我早期使用SQL时,我起初并不知道<>存在.<>离开学校后不久我就学会了,当时我不得不花一些时间在VB代码库上工作,当时认为这只是开发人员的一个怪癖,他们更喜欢VB风格的sql运算符.他们的VB客户端代码.很久以后我还在用!=.后来我学到的<>是标准,并且自从86年以来可能已被使用,当VB仍然只是"BASIC"时.我<>几乎完全使用过.