IBM DB2的运算符优先级

时间:2015-02-28 12:22:59

标签: sql db2

DB2 RDBMS引擎的运算符优先级规则是什么?

我正在寻找明确的规则,提到实际的运算符而不是运算符组之间的优先关系。

我通过Google搜索找到了此文档http://www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.sqlref/src/tpc/db2z_precedenceofoperations.dita,但我正在寻找更详细的内容,例如: AND,OR和NOT之间的优先关系

4 个答案:

答案 0 :(得分:4)

如果您正在寻找搜索条件运算符,请参阅Search conditions上的信息中心部分。其他详细信息在主题中,但基本规则是:

  

首先评估括号内的搜索条件。如果订单   评估不是由括号指定的,NOT之前未应用   AND,AND在OR之前应用。运营商在的顺序   评估相同的优先级是未定义的   优化搜索条件。

答案 1 :(得分:1)

来自DB2 for z/OS 10.0.0>DB2 reference information>DB2 SQL>Language elements>Expressions>Precedence of operations

  

首先评估括号内的表达式。当顺序   括号中没有指定评估,前缀运算符是   在乘法和除法之前应用,乘法,   在添加之前应用除法和连接   减法。应用相同优先级的运算符   从左到右。

答案 2 :(得分:0)

我按顺序使用了一个案例,看来很有效

SELECT * FROM TABLE WHERE KEY IN (KEY1 , KEY2) ORDER BY
CASE 
     WHEN KEY = KEY1 THEN 1
     ELSE 2
END

SELECT * FROM TABLE WHERE KEY IN (KEY1 , KEY2) ORDER BY CASE WHEN KEY = KEY1 THEN 1 ELSE 2 END

我没有用超过2个键进行检查。

答案 3 :(得分:-1)

超过here。简单的谷歌可以帮助你。