优先级 | 运算符 |
---|---|
SQL Server(SQL Server 2008 至当前版本), Azure SQL Database | |
1 | ~(位非) |
2 | *(乘)、/(除)、%(取模) |
3 | +(正)、-(负)、+(加)、(+连接)、-(减)、&(位与)、^(位异或)、|(位或) |
4 | =、>、<、>=、<=、<>、!=、!>、!< (比较运算符) |
5 | NOT |
6 | And |
7 | ALL、ANY、BETWEEN、IN、LIKE、OR、SOME |
8 | =(赋值) |
ORACLE | |
1 | 算术运算符 |
2 | 连接符 |
3 | 比较符 |
4 | IS[NOT]NULL、LIKE、[NOT]IN |
5 | [NOT] BETWEEN |
6 | NOT |
7 | AND |
8 | OR |
MySQL | |
1 | ! |
2 | -(负号)、~(按位取反) |
3 | ^(按位异或) |
4 | *、/(DIV)、%(MOD) |
5 | +、- |
6 | >>、<< |
7 | & |
8 | | |
9 | =(比较运算)、<=>、<、<=、>、>=、!=、<>、IN、IS NULL、LIKE、REGEXP |
10 | BETWEEN AND、CASE、WHEN、THEN、ELSE |
11 | NOT |
12 | &&、AND |
13 | XOR |
14 | ||、OR |
15 | =(赋值运算)、:= |
注:
另:操作符优先级 * / + -
- 可以使用括号改变优先级顺序
- 可以看出OR的优先级最低,算术运算符的优先级最高
- 乘除的优先级高于加减;
- 同一优先级运算符从左向右执行;
- 括号内的运算先执行。