优先

2016-06-28 81 views
-2

的SQL Server的规则是什么两个查询之间的区别:优先

查询#1:

select * 
from Employee 
where Job_id = 'SA_REP' OR Job_id = 'AD_PRES' AND salary > 15000 

输出:

EmpId Last_name Job_ID Salary 
1 King AD_PRES 24000 
2 Abel SA_REP 11000 
3 Taylor SA_REP 8600 
4 Grant SA_REP 7000 

查询#2:

select * 
from Employee 
where (Job_id = 'SA_REP' OR Job_id = 'AD_PRES') AND salary > 15000 

输出:

EmpId Last_name Job_ID Salary 
1 King AD_PRES 24000 
+0

一个区别是,如果AND和OR具有相同的优先顺序,第二个操作顺序是清楚的,无需查找。 –

+0

从您自己的实验中,您可以看到第一个等同于Job_id ='SA_REP'或(Job_id ='AD_PRES'和薪水> 15000)'另外,可以轻松研究运算符优先级。 –

回答

0

在第一个查询,你会得到所有员工“SA-REP”的JOB_ID不管他们的工资,并与“AD_PRES”的JOB_ID员工和工资> 15000在第二个查询你会获得工资> 15000且具有“SA_REP”或“AD_PRES”的Job_ID的员工。