複合運算式 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

複合運算式

複合表達式是由算術運算子聯結的一連串的簡單表達式。在複合表達式中使用的簡易表達式,必須傳回數值。

語法

expression operator expression | (compound_expression)

引數

運算式

求值的簡易表達式。

operator

複合的算術表達式可使用下列的運算子來建構,依此優先順序使用:

  • ( ):用來控制求值順序的括號

  • +、-:正號和負號/運算子

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

  • *、/、%:乘法、除法和模除運算子

  • @:絕對值

  • +、-:加和減

  • &、|、#、~、<<、>>:AND、OR、NOT、向左移位、向右移位的位元運算子

  • ||:串接

(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))