本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
複合運算式
複合表達式是由算術運算子聯結的一連串的簡單表達式。在複合表達式中使用的簡易表達式,必須傳回數值。
語法
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))