Skip to main content
 首页 » 编程设计

tsql之T-SQL 中的不等式测试

2024年06月03日33telwanggs

我刚刚在 WHERE 子句中遇到了这个:

AND NOT (t.id = @id) 

这与以下内容相比如何:

AND t.id != @id 

或者:

AND t.id <> @id 

我总是自己写后者,但显然其他人有不同的想法。其中一个的表现会比另一个更好吗?我知道使用 <>!=将会破灭我可能拥有的使用索引的任何希望,但是上面的第一种方法肯定会遇到同样的问题?

请您参考如下方法:

这 3 个将获得完全相同的执行计划

declare @id varchar(40) 
select @id = '172-32-1176' 
 
select * from authors 
where au_id <> @id 
 
select * from authors 
where au_id != @id 
 
select * from authors 
where not (au_id = @id) 

当然,这也取决于索引本身的选择性。我自己总是使用 au_id <> @id