运算符操作名为操作数或参数的单个数据项。运算符由特殊字符或关键字表示。例如, 乘法运算符由星号 (*) 表示。
如果已经安装了 oracle 文本, 则可以在 Oracle 文本查询中使用作为该产品一部分的SCORE
运算符。还可以使用内置文本运算符创建条件, 包括CONTAINS
、 CATSEARCH
和MATCHES
。有关这些 oracle 文本元素的详细信息, 请参阅 oracle 文本引用.
如果使用 Oracle 表达式筛选器, 则可以使用作为该产品一部分的内置EVALUATE
运算符创建条件。有关详细信息, 请参阅 Oracle 数据库规则管理器和表达式筛选器开发人员指南.
注意:
NLS_COMP
和NLS_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 运算符优先级
算子 | 操作 |
---|---|
|
标识、否定、层次结构中的位置 |
|
乘法, 除法 |
|
加法, 减法, 串联 |
sql 条件在 sql 运算符后计算 |
请参见"条件优先级" |
优先级示例在下面的表达式中, 乘法的优先级高于加法, 因此 Oracle 首先将2乘以 3, 然后将结果添加到1。
1+2*3
可以在表达式中使用圆括号来重写运算符优先级。Oracle 计算括号内的表达式, 然后再评估外部。
SQL 还支持 set 运算符 (UNION
、 UNION
ALL
、INTERSECT
和MINUS
), 它结合查询返回的行集, 而不是单个数据项。所有 set 运算符都具有相同的优先级。
另请参见:
"分层查询运算符"和"分层查询" , 以了解PRIOR
运算符的信息, 该操作仅在分层查询中使用