Oracle
 sql >> Database >  >> RDS >> Oracle

SQL 'AND' o 'OR' viene prima?

AND ha una precedenza maggiore di OR:

Da Oracle 12.1 docs (la precedenza per AND e OR è coerente almeno con la versione 7 - probabilmente oltre ma non ho collegamenti alla documentazione)

Versioni precedenti:

  • Versione 8
  • Versione 7

Le precedenze degli operatori sono mostrate nell'elenco seguente, dalla precedenza più alta alla più bassa. Gli operatori mostrati insieme su una riga hanno la stessa precedenza.

INTERVAL
BINARY, COLLATE
!
- (unary minus), ~ (unary bit inversion)
^
*, /, DIV, %, MOD
-, +
<<, >>
&
|
= (comparison), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
BETWEEN, CASE, WHEN, THEN, ELSE
NOT
&&, AND
XOR
||, OR
= (assignment), :=

Tuttavia incoraggerei VIVAMENTE l'uso delle parentesi sia per chiarezza che per ASSICURARE che gli operatori siano valutati nell'ordine in cui si intende.