复合表达式
复合表达式是由算术运算符联接的一系列简单表达式。复合表达式中使用的简单表达式必须返回数字值。
语法
expression operator expression | (compound_expression)
参数
- expression
-
计算结果为值的简单表达式。
- operator
-
复合算术表达式可使用下列采用此优先顺序的运算符构造:
-
( ):用于控制计算顺序的圆括号
-
+、-:正号和负号/运算符
-
^、|/、||/:乘方、平方根、立方根
-
*、/、%:乘、除和取模运算符
-
@:绝对值
-
+、-:加和减
-
&、|、#、~、<<、>>:逻辑与、逻辑或、逻辑非、左移位、右移位运算符
-
||:连接
-
- (compound_expression)
-
复合表达式可以使用圆括号嵌套。
示例
复合表达式的示例包括以下各项。
('SMITH' || 'JONES') sum(x) / y sqrt(256) * avg(column) rank() over (order by qtysold) / 100 (select (pricepaid - commission) from sales where dateid = 1882) * (qtysold)
一些函数还可嵌套在其他函数中。例如,任何标量函数都可嵌套在另一标量函数中。以下示例返回一组数字的绝对值之和:
sum(abs(qtysold))
窗口函数无法用作聚合函数或其他窗口函数的参数。以下表达式将返回错误:
avg(rank() over (order by qtysold))
窗口函数可以包含一个嵌套的聚合函数。以下表达式对值集进行求和,然后为它们排序:
rank() over (order by sum(qtysold))