首页 > 解决方案 > SQL Server在使用and时对where子句有任何优先级吗?

问题描述

我有 2 列:NamePrice.

Price是一个计算列,它调用一个函数来计算一些查询的价格。

现在我想知道两者之间有什么区别:

select * 
from myTable 
where name like 'j%' and Price > 1000

select * 
from myTable 
where Price > 1000 and name like 'j%'

我想知道我一开始是否使用像'j%'这样的名称,它是否有更好的性能,因为也许 sql server 一开始不会检查所有记录的计算列?

标签: sql-serverperformance

解决方案


完全没有区别。查询引擎将按照它认为可以提供最佳检索选项的任何顺序来评估这些内容。谓词的顺序和每个谓词中值的顺序都无关紧要。


推荐阅读