我刚刚在 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