OceanBase 函數(shù)概述

2021-06-18 13:59 更新
函數(shù)與運算符相似,即給定一些數(shù)據(jù)元素作為參數(shù)的輸入并返回結(jié)果。然而函數(shù)在入?yún)⑿问缴吓c運算符有比較大的區(qū)別。函數(shù)允許包含的參數(shù)數(shù)量不定,一個函數(shù)里可以有一到兩個,甚至更多的參數(shù)。
函數(shù)名(參數(shù),參數(shù),...)

沒有任何參數(shù)的函數(shù)類似于 偽列。但是,偽列通常為結(jié)果集中的每一行返回不同的值,而沒有任何變量的函數(shù)通常為每一行返回相同的值。

關于函數(shù)

OceanBase 內(nèi)嵌的函數(shù)可以直接在 SQL 語句中使用。每個函數(shù)的入?yún)魅胫稻衅谕臄?shù)據(jù)類型,如果傳入的數(shù)據(jù)類型不是期望的數(shù)據(jù)類型,則 OceanBase 會在實際執(zhí)行 SQL 函數(shù)之前嘗試將參數(shù)傳入的數(shù)值轉(zhuǎn)換為期望的數(shù)據(jù)類型。

函數(shù)中的空值

對于絕大多數(shù)的函數(shù)當入?yún)榭罩?NULL 的時候,其返回的結(jié)果也為 NULL。這種情況下,您可以使用 ?NVL? 函數(shù)返回一個非空值。例如,一張記錄傭金的表的傭金列 ?commission_pct? 為空值 NULL ,則表達式?NVL(commission_pct,0)? 返回 0;如果 commission_pct 的值不為 NULL,則返回實際的傭金值。

函數(shù)分類與列表

在如下的函數(shù)分類列表中,每一類函數(shù)的參數(shù)和最終的函數(shù)返回值都有其特定的數(shù)據(jù)類型。

注意 
在 SQL 語句中對 LOB 列使用函數(shù)時,OceanBase 數(shù)據(jù)庫將在 SQL 和 PL/SQL 處理期間創(chuàng)建臨時 LOB 列,并有一定的使用限制,詳情信息請參考文檔 與 Oracle 兼容性對比。

本章中函數(shù)分成了兩大類:

  • 單行函數(shù):包括 數(shù)字函數(shù)、返回字符串的字符串函數(shù)、返回數(shù)字的字符串函數(shù)、 時間日期函數(shù)、通用比較函數(shù)、轉(zhuǎn)換函數(shù)、編碼解碼函數(shù)和空值相關函數(shù)。
  • 統(tǒng)計函數(shù):包括聚合函數(shù)和分析函數(shù)。

單行函數(shù)對于被查詢的表或者視圖每一行均返回一個結(jié)果值,這些函數(shù)可以使用在 SQL 語句的 ?SELECT?、?WHERE?、?START WITH?、?CONNECT BY?、?HAVING? 等子句當中。

分析函數(shù)與聚合函數(shù),都是對行集組(一組行的集合)進行聚合計算,不同的是,聚合函數(shù)每組只能返回一個值(一行),而分析函數(shù)每組可以返回多個值(多行)。行集組又稱為窗口(Window)。聚合函數(shù)通常和 ?SELECT? 語句中的 ?GROUP BY? 子句一起使用,使用時數(shù)據(jù)庫將查詢表或視圖的行分為幾組,并將聚合函數(shù)應用于每組行,同時為每組返回一個結(jié)果行。

使用分析函數(shù)時需要用特殊的關鍵字 ?OVER? 來指定窗口。更多關于窗后函數(shù)的信息,請參閱文檔 窗口函數(shù)說明。

數(shù)字函數(shù)

數(shù)字函數(shù)的變量輸入與函數(shù)輸出結(jié)果均為數(shù)字類型,絕大部分的數(shù)字函數(shù)的返回值的數(shù)據(jù)類型為 NUMBER,可以精確到小數(shù)點后 38 位。一些高等代數(shù)相關函數(shù) ?COS?,?COSH?,?EXP?,?LN?,?LOG?,?SIN?,?SINH?,?SQRT?,?TAN?,?TANH? 等函數(shù)的結(jié)果精確到小數(shù)點后 36 位,其他代數(shù)相關函數(shù) ?ACOS?,?ASIN?,?ATAN? 和 ?ATAN2?。其結(jié)果返回值精確到小數(shù)點后 30 位。

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

單行函數(shù)

數(shù)字函數(shù)

ABS

返回指定數(shù)值表達式的絕對值(正值)的數(shù)學函數(shù)。

單行函數(shù)

數(shù)字函數(shù)

ACOS

返回以弧度表示的角,其余弦為指定的

NUMBER

表達式,也稱為反余弦。

單行函數(shù)

數(shù)字函數(shù)

ASIN

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

ATAN

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

ATAN2

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

BITAND

運算符按位進行“與”操作。輸入和輸出類型均為 INT 整型,且類型一致。

單行函數(shù)

數(shù)字函數(shù)

CEIL

返回值大于等于數(shù)值 numeric_expression 的最小整數(shù)。

單行函數(shù)

數(shù)字函數(shù)

COS

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

COSH

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

EXP

返回 e 的 numeric_expression 次冪。

單行函數(shù)

數(shù)字函數(shù)

FLOOR

返回小于等于數(shù)值 numeric_expression 的最大整數(shù)。

單行函數(shù)

數(shù)字函數(shù)

LN

返回以 e 為底的 numeric_expression 的對數(shù)。

單行函數(shù)

數(shù)字函數(shù)

LOG

返回以 x 為底的 y 的對數(shù)。

單行函數(shù)

數(shù)字函數(shù)

MOD

返回 x 除以 y 的余數(shù)。

單行函數(shù)

數(shù)字函數(shù)

POWER

返回 x 的 y 次冪。

單行函數(shù)

數(shù)字函數(shù)

REMAINDER

返回 x 除以 y 的余數(shù)。

單行函數(shù)

數(shù)字函數(shù)

ROUND

返回 numberic 四舍五入后的值。

單行函數(shù)

數(shù)字函數(shù)

SIGN

返回數(shù)字 n 的符號,大于 0 返回 1,小于 0 返回 -1 ,等于 0 返回 0。

單行函數(shù)

數(shù)字函數(shù)

SIN

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

SINH

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

SQRT

返回 n 的平方根。

單行函數(shù)

數(shù)字函數(shù)

TAN

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

TANH

OceanBase 暫不支持。

單行函數(shù)

數(shù)字函數(shù)

TRUNC

返回 numeric 按精度 precision 截取后的值。

單行函數(shù)

數(shù)字函數(shù)

WIDTH_BUCKET

OceanBase 暫不支持。

返回字符串的字符串函數(shù)

函數(shù)的返回值的最大長度受數(shù)據(jù)類型的影響,比如:函數(shù)的返回值的數(shù)據(jù)類型是 ?VARCHAR2?,但是返回值實際的大小超過了 ?VARCHAR2? 數(shù)據(jù)類型的最大限制,此時 OceanBase 數(shù)據(jù)庫會對結(jié)果進行截斷處理并返回,但是在客戶端上并不會顯示提示。

注意 
如果返回值的數(shù)據(jù)類型是 ?CLOB?,當返回值長度超過了最大限制時,OceanBase 不會返回數(shù)據(jù)且顯示錯誤提示。

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

單行函數(shù)

返回字符串的字符串函數(shù)

CHR

將 n 轉(zhuǎn)換為等價的一個或多個字符返回,且返回值與當前系統(tǒng)的字符集相關。

單行函數(shù)

返回字符串的字符串函數(shù)

CONCAT

連接兩個字符串。

單行函數(shù)

返回字符串的字符串函數(shù)

INITCAP

返回字符串并將字符串中每個單詞的首字母大寫,其他字母小寫。

單行函數(shù)

返回字符串的字符串函數(shù)

LOWER

將字符串全部轉(zhuǎn)為小寫。

單行函數(shù)

返回字符串的字符串函數(shù)

LPAD

在字符串 c1 的左邊用字符串 c2 填充,直到長度為 n 時為止。

單行函數(shù)

返回字符串的字符串函數(shù)

LTRIM

刪除左邊出現(xiàn)的字符串。

單行函數(shù)

返回字符串的字符串函數(shù)

REGEXP_REPLACE

用于正則表達式替換。

單行函數(shù)

返回字符串的字符串函數(shù)

REGEXP_SUBSTR

OceanBase 暫不支持。

單行函數(shù)

返回字符串的字符串函數(shù)

REPLACE

將字符表達式值中,部分相同字符串,替換成新的字符串。

單行函數(shù)

返回字符串的字符串函數(shù)

RPAD

在字符串 c1 的右邊用字符串 c2 填充,直到長度為 n 時為止。

單行函數(shù)

返回字符串的字符串函數(shù)

RTRIM

刪除右邊出現(xiàn)的字符串,此函數(shù)對于格式化查詢的輸出非常有用。

單行函數(shù)

返回字符串的字符串函數(shù)

SUBSTR

截取子字符串。其中多字節(jié)符(漢字、全角符等)按 1 個字符計算。

單行函數(shù)

返回字符串的字符串函數(shù)

TRANSLATE

將字符表達式值中,指定字符替換為新字符。多字節(jié)符(漢字、全角符等),按 1 個字符計算。

單行函數(shù)

返回字符串的字符串函數(shù)

TRIM

刪除一個字符串的開頭或結(jié)尾(或兩者)的字符。

單行函數(shù)

返回字符串的字符串函數(shù)

UPPER

將字符串全部轉(zhuǎn)為大寫。

返回數(shù)字的字符串函數(shù)

函數(shù)分類 函數(shù)子分類 函數(shù)名 功能描述

單行函數(shù)

返回數(shù)字的字符串函數(shù)

ASCII

返回字符表達式最左端字符的 ASCII 碼值。

單行函數(shù)

返回數(shù)字的字符串函數(shù)

INSTR

在一個字符串中搜索指定的字符,返回發(fā)現(xiàn)指定的字符的位置。

單行函數(shù)

返回數(shù)字的字符串函數(shù)

LENGTH

返回字符串的長度。

單行函數(shù)

返回數(shù)字的字符串函數(shù)

REGEXP_COUNT

OceanBase 暫不支持。

單行函數(shù)

返回數(shù)字的字符串函數(shù)

REGEXP_INSTR

OceanBase 暫不支持。

時間日期函數(shù)

時間日期函數(shù)支持的入?yún)?shù)據(jù)類型有三類:日期時間 (?DATE?)、時間戳 (?TIMESTAMP?、?TIMESTAMP WITH TIME ZONE?、?TIMESTAMP WITH LOCAL TIME ZONE?),以及間隔 (?INTERVAL DAY TO SECOND?、?INTERVAL YEAR TO MONTH?)

僅支持 ?DATE? 數(shù)據(jù)類型入?yún)⒌暮瘮?shù)列表:?ADD_MONTHS?、?CURRENT_DATE?, ?LAST_DAY?、?NEW_TIME? 和 ?NEXT_DAY?。

如果對于以上函數(shù),您嘗試給入的是 ?TIMESTAMP? 類型的數(shù)據(jù),OceanBase 內(nèi)部會先進行隱式數(shù)據(jù)類型轉(zhuǎn)換后帶入函數(shù)進行運算,并返回 ?DATE? 類型的返回值。

在使用時間函數(shù)前,建議執(zhí)行 ?SELECT * FROM NLS_DATABASE_PARAMETERS? 查看當前的 NLS 格式:

obclient> SELECT * FROM NLS_DATABASE_PARAMETERS;
+-------------------------+------------------------------+
| PARAMETER               | VALUE                        |
+-------------------------+------------------------------+
| NLS_DATE_FORMAT         | DD-MON-RR                    |
| NLS_TIMESTAMP_FORMAT    | YYYY-MM-DD HH24:MI:SS        |
| NLS_TIMESTAMP_TZ_FORMAT | DD-MON-RR HH.MI.SSXFF AM TZR |
| NLS_TERRITORY           | AMERICA                      |
| NLS_SORT                | BINARY                       |
| NLS_COMP                | BINARY                       |
| NLS_CHARACTERSET        | AL32UTF8                     |
| NLS_NCHAR_CHARACTERSET  | AL16UTF16                    |
| NLS_DATE_LANGUAGE       | AMERICAN                     |
| NLS_LENGTH_SEMANTICS    | BYTE                         |
| NLS_NCHAR_CONV_EXCP     | FALSE                        |
| NLS_CALENDAR            | GREGORIAN                    |
| NLS_NUMERIC_CHARACTERS  | .,                           |
+-------------------------+------------------------------+
13 rows in set (0.05 sec)

如果與文中示例的顯示格式不一致,可以執(zhí)行如下命令更改格式:

obclient>ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
Query OK, 0 rows affected (0.00 sec)

obclient>ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
Query OK, 0 rows affected (0.00 sec)
/*將返回值中秒的小數(shù)位設置為 9 位*/

obclient> ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF TZR TZD';
Query OK, 0 rows affected (0.00 sec)
注意 
  • ?MONTHS_BETWEEN? 返回值為 1 個數(shù)字。
  • ?ROUND? 和 ?TRUNC? 并不能進行隱式轉(zhuǎn)換,必須傳輸 ?DATE? 類型的數(shù)值,否則會報錯。

剩余的函數(shù)對于三種參數(shù)數(shù)據(jù)類型均可以支持,且返回和入?yún)⑼瑯拥臄?shù)據(jù)類型。

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

單行函數(shù)

時間日期函數(shù)

ADD_MONTHS

返回在日期 date 基礎上 n 個月后的日期值,如果 n 的值為負數(shù)則返回日期 date 基礎上 n 個月前的日期值(date 減去 n 個月)。

單行函數(shù)

時間日期函數(shù)

CURRENT_DATE

返回當前會話時區(qū)中的當前日期。

單行函數(shù)

時間日期函數(shù)

CURRENT_TIMESTAMP

返回 TIMESTAMP WITH TIME ZONE 數(shù)據(jù)類型的當前會話時區(qū)中的當前日期,返回值中包含當前的時區(qū)信息。

單行函數(shù)

時間日期函數(shù)

DBTIMEZONE

返回當前數(shù)據(jù)庫實例的時區(qū),在 OceanBase 中數(shù)據(jù)庫時區(qū)恒為+00:00,且不支持修改。

單行函數(shù)

時間日期函數(shù)

EXTRACT (datetime)

從指定的時間字段或表達式中抽取年、月、日、時、分、秒等元素。

單行函數(shù)

時間日期函數(shù)

FROM_TZ

將一個 TIMSTAMP 數(shù)據(jù)類型的值和時區(qū)信息拼成一個 TIMESTAMP WITH TIME ZONE 數(shù)據(jù)類型的時間值。

單行函數(shù)

時間日期函數(shù)

LAST_DAY

返回日期 date 所在月份的最后一天的日期。

單行函數(shù)

時間日期函數(shù)

LOCALTIMESTAMP

返回當前會話時區(qū)中的當前日期,返回 TIMESTAMP 數(shù)據(jù)類型的值。

單行函數(shù)

時間日期函數(shù)

MONTHS_BETWEEN

返回返回參數(shù) date1 到 date2 之間的月數(shù)。

單行函數(shù)

時間日期函數(shù)

NEW_TIME

OceanBase 暫不支持。

單行函數(shù)

時間日期函數(shù)

NEXT_DAY

返回日期 d1 的下一周中 c1(星期值)所在的日期值。

單行函數(shù)

時間日期函數(shù)

NUMTODSINTERVAL

把參數(shù) n 轉(zhuǎn)為以參數(shù) interval_unit 為單位的 INTERVAL DAY TO SECOND 數(shù)據(jù)類型的值。

單行函數(shù)

時間日期函數(shù)

NUMTOYMINTERVAL

把參數(shù) n 轉(zhuǎn)為以 interval_unit 為單位的 INTERVAL YEAR TO MONTH 數(shù)據(jù)類型的值。

單行函數(shù)

時間日期函數(shù)

ROUND (date)

返回以參數(shù) fmt 為單位距離的離指定日期 date 最近的日期時間值。

單行函數(shù)

時間日期函數(shù)

SESSIONTIMEZONE

返回當前會話時區(qū)。

單行函數(shù)

時間日期函數(shù)

SYS_EXTRACT_UTC

返回與指定時間相對應的的標準 UTC 時間。

單行函數(shù)

時間日期函數(shù)

SYSDATE

返回當前日期。

單行函數(shù)

時間日期函數(shù)

SYSTIMESTAMP

返回系統(tǒng)當前日期,返回值的秒的小數(shù)位包含 6 位精度,且包含當前時區(qū)信息。

單行函數(shù)

時間日期函數(shù)

TO_CHAR (datetime)

將 DATE、TIMESTAMPTIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、INTERVAL DAY TO SECOND 和 INTERVAL YEAR TO MONTH 等數(shù)據(jù)類型的值按照參數(shù) fmt 指定的格式轉(zhuǎn)換為 VARCHAR2 數(shù)據(jù)類型的值。

單行函數(shù)

時間日期函數(shù)

TO_DSINTERVAL

將一個 CHARVARCHAR2、NCHAR 或 NVARCHAR2 數(shù)據(jù)類型的字符串轉(zhuǎn)換為一個 INTERVAL DAY TO SECOND 數(shù)據(jù)類型的值,該函數(shù)可以用來對一個日期時間值進行加減計算。

單行函數(shù)

時間日期函數(shù)

TO_TIMESTAMP

將字符串轉(zhuǎn)換為 TIMESTAMP 數(shù)據(jù)類型。

單行函數(shù)

時間日期函數(shù)

TO_TIMESTAMP_TZ

將字符串轉(zhuǎn)換為 TIMESTAMP WITH TIME ZONE 數(shù)據(jù)類型,包含時區(qū)信息。

單行函數(shù)

時間日期函數(shù)

TO_YMINTERVAL

將一個 CHAR、VARCHAR2NCHAR 或NVARCHAR2 數(shù)據(jù)類型的字符串轉(zhuǎn)換為一個 INTERVAL YEAR TO MONTH 數(shù)據(jù)類型的值,該函數(shù)可以用來對一個日期時間值進行加減計算。

單行函數(shù)

時間日期函數(shù)

TRUNC (date)

返回以參數(shù) fmt 為單位距離的離指定日期 date 最近的日期時間值,并且返回的日期值在 date 之前。

單行函數(shù)

時間日期函數(shù)

TZ_OFFSET

返回時區(qū) n 的時區(qū)偏移量。時區(qū)偏移量是指與格林尼治標準時間 GMT 的差(小時和分鐘)。

通用比較函數(shù)

可以通過本類別函數(shù)快速的在集合中尋找到最大值和最小值。

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

單行函數(shù)

通用比較函數(shù)

GREATEST

返回一個或多個表達式列表中的最大值。

單行函數(shù)

通用比較函數(shù)

LEAST

返回一個或多個表達式列表中的最小值。

轉(zhuǎn)換函數(shù)

可以通過本類型的函數(shù)將原本的數(shù)據(jù)類型轉(zhuǎn)換為另外一種數(shù)據(jù)類型。

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

函數(shù)分類 函數(shù)子分類 函數(shù)名 功能描述

單行函數(shù)

轉(zhuǎn)換函數(shù)

ASCIISTR

OceanBase 暫不支持。

單行函數(shù)

轉(zhuǎn)換函數(shù)

BIN_TO_NUM

OceanBase 暫不支持。

單行函數(shù)

轉(zhuǎn)換函數(shù)

CHARTOROWID

OceanBase 暫不支持。

單行函數(shù)

轉(zhuǎn)換函數(shù)

HEXTORAW

將 CHAR、VARCHAR2NCHAR 或 NVARCHAR2 數(shù)據(jù)類型中包含十六進制數(shù)字的字符轉(zhuǎn)換為 RAW 數(shù)據(jù)類型。

單行函數(shù)

轉(zhuǎn)換函數(shù)

RAWTOHEX

將二進制數(shù)轉(zhuǎn)換為一個相應的十六進制表示的字符串。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_BINARY_DOUBLE

返回一個雙精度的 64 位浮點數(shù).

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_BINARY_FLOAT

返回一個單精度的 32 位浮點數(shù)。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_CHAR (character)

將 NCHARNVARCHAR2 或 CLOB 數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)庫字符集。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_CHAR (datetime)

將 DATETIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、INTERVAL DAY TO SECOND 和 INTERVAL YEAR TO MONTH 等數(shù)據(jù)類型的值按照參數(shù) fmt 指定的格式轉(zhuǎn)換為 VARCHAR2 數(shù)據(jù)類型的值。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_CHAR (number)

將 NUMBER、BINARY_FLOAT 或 BINARY_DOUBLE 類型的數(shù)值 n 按照指定數(shù)值格式 fmt 轉(zhuǎn)換為 varchar2 數(shù)據(jù)類型的值。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_DATE

將 CHAR、VARCHAR、NCHAR 或 NVARCHAR2 數(shù)據(jù)類型的字符轉(zhuǎn)換為日期數(shù)據(jù)類型的值。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_DSINTERVAL

將一個 CHAR、VARCHAR2、NCHAR 或 NVARCHAR2 數(shù)據(jù)類型的字符串轉(zhuǎn)換為一個 INTERVAL DAY TO SECOND 數(shù)據(jù)類型的值,該函數(shù)可以用來對一個日期時間值進行加減計算。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_NUMBER

將 expr 轉(zhuǎn)換為數(shù)值數(shù)據(jù)類型的值。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_TIMESTAMP

將字符串轉(zhuǎn)換為 TIMESTAMP 數(shù)據(jù)類型。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_TIMESTAMP_TZ

將字符串轉(zhuǎn)換為 TIMESTAMP WITH TIME ZONE 數(shù)據(jù)類型,包含時區(qū)信息。

單行函數(shù)

轉(zhuǎn)換函數(shù)

TO_YMINTERVAL

將一個 CHAR、VARCHAR2、NCHAR 或 NVARCHAR2 數(shù)據(jù)類型的字符串轉(zhuǎn)換為一個 INTERVAL YEAR TO MONTH 數(shù)據(jù)類型的值,該函數(shù)可以用來對一個日期時間值進行加減計算。

編碼解碼函數(shù)

可以通過本類型的函數(shù)在 OceanBase 數(shù)據(jù)庫中實現(xiàn)數(shù)據(jù)的編碼解密需求。

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

單行函數(shù)

編碼解碼函數(shù)

DECODE

會根據(jù)條件返回相應值。

單行函數(shù)

編碼解碼函數(shù)

ORA_HASH

獲取對應表達式的 HASH 值。

單行函數(shù)

編碼解碼函數(shù)

VSIZE

返回 X 的字節(jié)大小數(shù)。

空值相關函數(shù)

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

單行函數(shù)

空值相關函數(shù)

COALESCE

返回參數(shù)列表中第一個非空表達式,必須指定最少兩個參數(shù)。

單行函數(shù)

空值相關函數(shù)

LNNVL

判斷條件中的一個或者兩個操作數(shù)是否為 NULL

單行函數(shù)

空值相關函數(shù)

NULLIF

OceanBase 暫不支持。

單行函數(shù)

空值相關函數(shù)

NVL

從兩個表達式返回一個非 NULL 值。如果 expr1 與 expr2 的結(jié)果皆為 NULL 值,則 NVL 函數(shù)返回 NULL。

單行函數(shù)

空值相關函數(shù)

NVL2

根據(jù)表達式是否為空,返回不同的值。如果 expr1 不為空,則返回 expr2 的值,如果 expr1 為空,則返回 expr3 的值。expr2 和 expr3 類型不同的話,expr3 會轉(zhuǎn)換為 expr1 的類型。

環(huán)境相關函數(shù)

本分類的函數(shù)主要提供會話或者租戶實例相關的環(huán)境信息。

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

單行函數(shù)

環(huán)境相關函數(shù)

SYS_CONTEXT

OceanBase 暫不支持。

單行函數(shù)

環(huán)境相關函數(shù)

UID

OceanBase 暫不支持。

單行函數(shù)

環(huán)境相關函數(shù)

USER

OceanBase 暫不支持。

聚合函數(shù)

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

統(tǒng)計函數(shù)

聚合函數(shù)

AVG

返回數(shù)值列的平均值。

統(tǒng)計函數(shù)

聚合函數(shù)

COUNT

用于查詢參數(shù) expr 的行數(shù)。

統(tǒng)計函數(shù)

聚合函數(shù)

SUM

返回參數(shù)中指定列的和。

統(tǒng)計函數(shù)

聚合函數(shù)

GROUPING

OceanBase 暫不支持。

統(tǒng)計函數(shù)

聚合函數(shù)

MAX

返回參數(shù)中指定的列中的最大值。

統(tǒng)計函數(shù)

聚合函數(shù)

MIN

返回參數(shù)中指定列的最小值。

統(tǒng)計函數(shù)

聚合函數(shù)

LISTAGG

用于列轉(zhuǎn)行,LISTAGG 對 ORDER BY 子句中指定的每個組內(nèi)的數(shù)據(jù)進行排序,然后合并度量列的值。

統(tǒng)計函數(shù)

聚合函數(shù)

ROLLUP

在數(shù)據(jù)統(tǒng)計和報表生成過程中,它可以為每個分組返回一個小計,同時為所有分組返回總計。

統(tǒng)計函數(shù)

聚合函數(shù)

STDDEV

用于計算總體標準差。

統(tǒng)計函數(shù)

聚合函數(shù)

STDDEV_POP

計算總體標準差。

統(tǒng)計函數(shù)

聚合函數(shù)

STDDEV_SAMP

計算樣本標準差。

統(tǒng)計函數(shù)

聚合函數(shù)

VARIANCE

返回參數(shù)指定列的方差。

統(tǒng)計函數(shù)

聚合函數(shù)

APPROX_COUNT_DISTINCT

計算某一列去重后的行數(shù),返回的值是一個近似值,該函數(shù)可以進一步用于計算被引用的列的選擇性。

分析函數(shù)

函數(shù)分類

函數(shù)子分類

函數(shù)名

功能描述

統(tǒng)計函數(shù)

分析函數(shù)

AVG

返回數(shù)值列的平均值。

統(tǒng)計函數(shù)

分析函數(shù)

COUNT

用于查詢參數(shù) expr 的行數(shù)。

統(tǒng)計函數(shù)

分析函數(shù)

CUME_DIST

計算一個值在一組值中的累積分布。

統(tǒng)計函數(shù)

分析函數(shù)

DENSE_RANK

計算有序行組中行的秩,并將秩作為 NUMBER 返回。

統(tǒng)計函數(shù)

分析函數(shù)

MAX

返回參數(shù)中指定的列中的最大值。

統(tǒng)計函數(shù)

分析函數(shù)

MIN

返回參數(shù)中指定列的最小值。

統(tǒng)計函數(shù)

分析函數(shù)

SUM

返回參數(shù)中指定列的和。

統(tǒng)計函數(shù)

分析函數(shù)

FIRST_VALUE

返回有序值中的第一個值。

統(tǒng)計函數(shù)

分析函數(shù)

LAG

提供對多行表的訪問,而不需要自連接。

統(tǒng)計函數(shù)

分析函數(shù)

LAST_VALUE

返回一組有序值中的最后一個值。

統(tǒng)計函數(shù)

分析函數(shù)

LEAD

它提供了對表多行的訪問,而無需進行自我連接。給定從查詢返回的一些列行和光標的位置,LEAD 提供超出該位置的物理偏移量的行的訪問。

統(tǒng)計函數(shù)

分析函數(shù)

LISTAGG

用于列轉(zhuǎn)行。

統(tǒng)計函數(shù)

分析函數(shù)

NTH_VALUE

返回 analytic_clause 定義的窗口中第 n 行的 measure_expr 值。

統(tǒng)計函數(shù)

分析函數(shù)

NTILE

將有序數(shù)據(jù)集劃分為 expr 指示的若干桶,并為每一行分配適當?shù)耐疤枴?/p>

統(tǒng)計函數(shù)

分析函數(shù)

PERCENT_RANK

類似于 CUME_DIST(累積分布)函數(shù)。 它的返回值范圍為 0~1。任何集合中的第一行的PERCENT_RANK 函數(shù)為 0,返回值為 NUMBER。

統(tǒng)計函數(shù)

分析函數(shù)

SUM

返回參數(shù)中指定列的和。

統(tǒng)計函數(shù)

分析函數(shù)

RANK

基于 OVER 子句中的 ORDER BY 表達式確定一組值的排名。

統(tǒng)計函數(shù)

分析函數(shù)

RATIO_TO_REPORT

計算一個值與一組值之和的比率。

統(tǒng)計函數(shù)

分析函數(shù)

ROW_NUMBER

為應用它的每一行分配一個唯一的數(shù)字。

統(tǒng)計函數(shù)

分析函數(shù)

STDDEV

用于計算總體標準差。

統(tǒng)計函數(shù)

分析函數(shù)

STDDEV_POP

計算總體標準差。

統(tǒng)計函數(shù)

分析函數(shù)

STDDEV_SAMP

計算樣本標準差。

統(tǒng)計函數(shù)

分析函數(shù)

VARIANCE

返回參數(shù)指定列的方差。

更多信息

分析函數(shù)中的關鍵字 ?OVER?,請參閱 窗口函數(shù)說明。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號