Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

复合表达式

复合表达式是由算术运算符联接的一系列简单表达式。复合表达式中使用的简单表达式必须返回数字值。

语法

Copy
expression operator expression | (compound_expression)

参数

expression

计算结果为值的简单表达式。

operator

复合算术表达式可使用下列采用此优先顺序的运算符构造:

  • ( ):用于控制计算顺序的圆括号

  • +、-:正号和负号/运算符

  • ^、|/、||/:乘方、平方根、立方根

  • *、/、%:乘、除和取模运算符

  • @:绝对值

  • +、-:加和减

  • &、|、#、~、<<、>>:逻辑与、逻辑或、逻辑异或、逻辑非、左移位、右移位运算符

  • ||:连接

(compound_expression)

复合表达式必须使用圆括号嵌套。

示例

复合表达式的示例包括:

Copy
('SMITH' || 'JONES') sum(x) / y sqrt(256) * avg(column) rank() over (order by qtysold) / 100 (select (pricepaid - commission) from sales where dateid = 1882) * (qtysold)

一些函数还可嵌套在其他函数中。例如,任何标量函数都可嵌套在另一标量函数中。以下示例返回一组数字的绝对值之和:

Copy
sum(abs(qtysold))

窗口函数无法用作聚合函数或其他窗口函数的参数。以下表达式将返回错误:

Copy
avg(rank() over (order by qtysold))

窗口函数可以包含一个嵌套的聚合函数。以下表达式对值集进行求和,然后为它们排序:

Copy
rank() over (order by sum(qtysold))

本页内容: