2016-06-28 2 views
-2

Was ist der Unterschied zwischen zwei Abfragen ist:SQL Server Prioritätsregeln

Abfrage # 1:

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

Ausgang:

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 

Abfrage # 2:

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

Ausgabe:

EmpId Last_name Job_ID Salary 
1 King AD_PRES 24000 
+0

Ein Unterschied ist, dass der zweite eine Reihenfolge von Operationen hat, die klar ist, ohne nachzuschauen, ob AND und OR die gleiche Priorität haben oder nicht. –

+0

Aus Ihrem eigenen Experiment können Sie sehen, dass die erste gleichbedeutend ist mit 'Job_id =' SA_REP 'OR (Job_id =' AD_PRES 'UND Gehalt> 15000) 'Auch Operatorenpriorität kann leicht recherchiert werden. –

Antwort

0

In der ersten Abfrage, die Sie alle Mitarbeiter mit einem Job_ID von ‚SA-REP‘ egal bekommen, was ihr Gehalt ist und Mitarbeiter mit einem Job_ID von ‚AD_PRES‘ und Gehalt> 15000. In der zweiten Abfrage werden Sie Mitarbeiter erhalten, deren Gehalt> 15000 ist und eine Job_ID von "SA_REP" oder "AD_PRES" haben.

Verwandte Themen