ORACLE官方SQL语言参考笔记之运算符(第四章-第一节-关于 SQL 运算符)

运算符操作名为操作数参数的单个数据项。运算符由特殊字符或关键字表示。例如, 乘法运算符由星号 (*) 表示。

如果已经安装了 oracle 文本, 则可以在 Oracle 文本查询中使用作为该产品一部分的SCORE运算符。还可以使用内置文本运算符创建条件, 包括CONTAINS、 CATSEARCHMATCHES有关这些 oracle 文本元素的详细信息, 请参阅 oracle 文本引用.

如果使用 Oracle 表达式筛选器, 则可以使用作为该产品一部分的内置EVALUATE运算符创建条件。有关详细信息, 请参阅 Oracle 数据库规则管理器和表达式筛选器开发人员指南.

注意:

NLS_COMPNLS_SORT设置的组合值决定了对字符进行排序和比较的规则。 如果NLS_COMP设置为数据库的LINGUISTIC, 则本章中的所有实体将根据NLS_SORT参数指定的规则进行解释。 如果NLS_COMP未设置为LINGUISTIC, 则在不考虑NLS_SORT设置的情况下解释这些函数。 可以显式设置NLS_SORT 。 如果未显式设置, 则派生自NLS_LANGUAGE 有关这些设置的详细信息, 请参阅Oracle 数据库全球化支持指南 。

一元和二元运算符

运算符的两个一般类是:

  • : 一元运算符仅在一个操作数上操作。一元运算符通常以此格式显示其操作数:

    operator operand
    
  • 二进制: 二进制运算符在两个操作数上操作。二进制运算符以此格式显示其操作数:

    operand1 operator operand2
    

具有特殊格式的其他运算符接受两个以上的操作数。如果给定一个运算符为 null 操作数, 则结果始终为 null。不遵循此规则的唯一运算符是串联 (| |)。

运算符优先级

优先级是 Oracle 数据库在同一表达式中计算不同运算符的顺序。在计算包含多个运算符的表达式时, Oracle 在计算优先级较低的运算符之前对优先级较高的运算符进行评估。Oracle 在表达式中从左到右计算相等优先级的运算符。

表 4-1列出了 SQL 运算符之间从高到低的优先级级别。在同一行上列出的运算符具有相同的优先级。

表 4-1 SQL 运算符优先级

算子 操作

+, -(作为一元运算符),PRIOR, CONNECT_BY_ROOT

标识、否定、层次结构中的位置

*, /

乘法, 除法

+, -(作为二进制运算符), ||

加法, 减法, 串联

sql 条件在 sql 运算符后计算

请参见"条件优先级"


优先级示例在下面的表达式中, 乘法的优先级高于加法, 因此 Oracle 首先将2乘以 3, 然后将结果添加到1。

1+2*3 

可以在表达式中使用圆括号来重写运算符优先级。Oracle 计算括号内的表达式, 然后再评估外部。

SQL 还支持 set 运算符 (UNION、 UNION ALLINTERSECTMINUS), 它结合查询返回的行集, 而不是单个数据项。所有 set 运算符都具有相同的优先级。

另请参见:

"分层查询运算符""分层查询" , 以了解PRIOR运算符的信息, 该操作仅在分层查询中使用

猜你喜欢

转载自blog.csdn.net/huyingzuo/article/details/80475813