本节主要介绍 TDSQL PG 与原生 Oracle 内建函数的兼容性对比信息。
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 |
|---|---|---|
| 1 | 数值函数 | 支持 |
| 2 | 字符串函数 | 支持 |
| 3 | 日期函数 | 支持 |
| 4 | 通用比较函数 | 支持 |
| 5 | 转换函数 | 部分支持 |
| 6 | 编码解码函数 | 支持 |
| 7 | 环境和标识符函数 | 支持 |
| 8 | 空值相关函数 | 支持 |
| 9 | JSON 函数 | 部分支持 |
| 10 | XML 函数 | 部分支持 |
| 11 | 聚合函数 | 部分支持 |
| 12 | 分析函数 | 部分支持 |
| 13 | 对象引用函数 | 部分支持 |
| 14 | 关于用户自定义的函数 | 支持 |
数值函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | ABS(n) | 支持 | 返回指定参数n的绝对值 |
| 2 | ACOS(n) | 支持 | 返回指定参数n的反余弦值 |
| 3 | ASIN(n) | 支持 | 返回指定参数n的反正弦值 |
| 4 | ATAN(n) | 支持 | 返回指定参数n的反正切值 |
| 5 | ATAN2(n1, n2) | 支持 | 返回指定的参数n1 和 参数n2的反正切 |
| 6 | BITAND(expr1, expr2) | 支持 | 返回两个参数expr1, expr2 按位与运算后的结果 |
| 7 | CEIL(n) | 支持 | 返回大于等于指定参数n的最小整数 |
| 8 | COS(n) | 支持 | 返回指定参数n的余弦值 |
| 9 | COSH(n) | 支持 | 返回指定参数n的双曲余弦值 |
| 10 | EXP(n) | 支持 | 返回自然常数 e 的指定参数n的次幂 |
| 11 | FLOOR(n) | 支持 | 返回小于或等于指定参数n的最大整数值 |
| 12 | LN(n) | 支持 | 返回指定参数n的自然对数 |
| 13 | LOG(n2, n1) | 支持 | 返回参数n2 基于 参数n1 的对数 |
| 14 | MOD(n2, n1) | 支持 | 返回参数n2 除以 参数n1 的余数 |
| 15 | NANVL(n2, n1) | 支持 | 如参数n2 为NaN 则返回 参数n1,否则返回 参数n2 |
| 16 | POWER(n2, n1) | 支持 | 返回 参数n2 的 参数n1 次幂 |
| 17 | REMAINDER(n2, n1) | 支持 | 返回 参数n2 除以 参数n1 的余数 |
| 18 | ROUND(n, integer) | 支持 | 将数字 n 四舍五入到指定的小数位数integer |
| 19 | SIGN(n) | 支持 | 返回指定参数n的符号,如-1,0 或 1, 表示负数,零或正数 |
| 20 | SIN(n) | 支持 | 返回指定弧度值n的正弦值 |
| 21 | SINH(n) | 支持 | 返回指定数值n的双曲正弦值 |
| 22 | SQRT(n) | 支持 | 返回指定参数n的平方根 |
| 23 | TAN(n) | 支持 | 返回指定弧度n的正切 |
| 24 | TANH(n) | 支持 | 返回指定数值n的双曲正切 |
| 25 | TRUNC(n1, n2) | 支持 | 将指定数字n1截断到指定精度n2(默认为 0)并返回结果。 |
| 26 | WIDTH_BUCKET(numeric , numeric , numeric , int ) | 支持 | 返回指定值 numeric 位于范围[min_value, max_value]和个数 num_buckets 的桶中的位置。 |
字符串函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | 1. CHR(n) 1. CHR(n USING NCHAR_CS) |
支持 | 返回指定整数参数n对应的字符,如指定 USING NCHAR_CS,则返回国家字符集中的字符,注意当前国家字符集为数据库字符集。 注意: TDSQL PG 中 chr(0) 的返回结果为空格字符,与Oracle不同。 |
| 2 | CONCAT(char1, char2) | 支持 | 返回char1 拼接 char2 而成的字符串。 |
| 3 | INITCAP(char) | 支持 | 返回一个字符串,将指定字符串char中的每个单词的首字母转为大写,其他字母转为小写。 |
| 4 | LOWER(char) | 支持 | 返回指定字符串char的小写形式。 |
| 5 | LPAD(expr1, n, expr2) | 支持 | 返回一个字符串,即在字符表达式expr1左侧填充字符表达式expr2,使其长度达到n。 |
| 6 | LTRIM(char, set) | 支持 | 返回一个字符串,即在字符串char中删除前导字符(默认为空格)set 后的字符串。 |
| 7 | NCHAR(number) | 支持 | 返回一个参数number 对应的 NVARCHAR2 类型的字符 |
| 8 | NLS_INITCAP(char, 'nlsparam') | 支持 | 返回一个字符串,将指定字符串char中的每个单词的首字母转为大写,其他字母转为小写。 |
| 9 | NLS_LOWER(char, 'nlsparam') | 支持 | 返回指定字符串char的小写形式。 |
| 10 | NLS_UPPER(char, 'nlsparam') | 支持 | 返回指定字符串char的大写形式。 |
| 11 | NLSSORT(char, 'nlsparam') | 支持 | 返回指定字符串char的排序规则键。 |
| 12 | 1. REGEXP_REPLACE(source_char, pattern) 1. REGEXP_REPLACE(source_char, pattern, replace_string) 1. REGEXP_REPLACE(source_char, pattern, replace_string, position) 1. REGEXP_REPLACE(source_char, pattern, replace_string, position, occurrence) 1. REGEXP_REPLACE(source_char, pattern, replace_string, position, occurrence, match_param) |
支持 | 在一个源字符串source_char中,用新字符串replace_string替换 pattern匹配的内容并返回替换后的内容。 |
| 13 | 1. REGEXP_SUBSTR(source_char, pattern) 1. REGEXP_SUBSTR(source_char, pattern, position) 1. REGEXP_SUBSTR(source_char, pattern, position, occurrence) 1. REGEXP_SUBSTR(source_char, pattern, position, occurrence, match_param) 1. REGEXP_SUBSTR(source_char, pattern, position, occurrence, match_param, subexpr) |
支持 | 从一个给定的源字符串source_char中搜索并返回一个与给定的正则表达式pattern匹配的字符串。 |
| 14 | REPLACE(char, search_string [, replacement_string ]) | 支持 | 返回一个字符串,将源字符串中的所有的 search_string 用 replacement_string 替换。 |
| 15 | RPAD(str, len [, padstr ]) | 支持 | 返回一个字符串,在源字符串str的右侧填充字符序列padstr(默认为空格),使其具有指定的长度len |
| 16 | RTRIM(str [, set ]) | 支持 | 返回一个字符串,其为删除str 指定的尾随字符set(默认为空格)的字符串。 |
| 17 | SOUNDEX(str) | 支持 | 将普通字符串str 转换为SOUNDEX字符串。 |
| 18 | SUBSTR(char, position [, substring_length ]) | 支持 | 从一个字符串char中返回一个从指定位置position开始的指定长度substring_length 的子字符串。 |
| 19 | TRANSLATE(string, from_string, to_string) | 支持 | 返回一个翻译后的字符串,将 string 中所有在 from_string 字符翻译成在 to_string 中对应的字符。 |
| 20 | 1. TRIM(str) 1. TRIM(trim_character FROM str) 1. TRIM({BOTH / LEADING / TRAILING} trim_character FROM str) |
支持 | 返回一个字符串,其为源字符串str 删除前导和尾随字符(默认为空格)set的字符串。 |
| 21 | UPPER(str) | 支持 | 返回指定字符串str的大写形式 |
| 22 | ASCII(character) | 支持 | 根据数据库字符集返回字符型数值character第一个字符的ascii码 |
| 23 | INSTR(string , substring [, position [, occurrence ] ]) | 支持 | 返回一个整数,即子字符串 substring 在字符串 string 中的索引位置。 |
| 24 | LENGTH(str) | 支持 | 返回指定字符串str的长度 |
| 25 | 1. REGEXP_COUNT(source_char, pattern) 1. REGEXP_COUNT(source_char, pattern, position) 1. REGEXP_COUNT(source_char, pattern, position, match_param) |
支持 | 返回正则表达式pattern匹配值在源字符串source_char中出现的次数。 |
| 26 | 1. REGEXP_INSTR(source_char, pattern) 1. REGEXP_INSTR(source_char, pattern, position) 1. REGEXP_INSTR(source_char, pattern, position, occurrence) 1. REGEXP_INSTR(source_char, pattern, position, occurrence, return_opt) 1. REGEXP_INSTR(source_char, pattern, position, occurrence, return_opt, match_param) 1. REGEXP_INSTR(source_char, pattern, position, occurrence, return_opt, match_param, subexpr) |
支持 | 返回正则表达式pattern匹配值在源字符串source_char中的位置。 |
日期函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | ADD_MONTHS(date, months) | 支持 | 在指定日期date上增加或减少指定月数months |
| 2 | CURRENT_DATE | 支持 | 返回当前会话时区对应的当前日期 |
| 3 | CURRENT_TIMESTAMP | 支持 | 返回当前会话时区对应的日期和时间 |
| 4 | DBTIMEZONE | 支持 | 返回数据库时区 |
| 5 | EXTRACT(field FROM expr) | 支持 | 从日期时间或间隔表达式expr 中提取日期字段field的值,field包括:YEAR, MONTH, DAY, HOUR, MINUTE, SECOND。 |
| 6 | FROM_TZ(timestamp_value, time_zone_value) | 支持 | 将一个时间戳 timestamp_value 和时区 time_zone_value 转换为带有时区的时间戳值。 |
| 7 | LAST_DAY(date) | 支持 | 返回指定日期date 所在月份的最后一天。 |
| 8 | 1. LOCALTIMESTAMP 1. LOCALTIMESTAMP(precision) |
支持 | 返回当前会话时区中的当前日期和时间。 |
| 9 | MONTHS_BETWEEN(date1, date2) | 支持 | 返回两个指定日期date1和date2之间的月数 |
| 10 | NEXT_DAY(date, char) | 支持 | 返回晚于指定日期date 的第一个工作日的日期 |
| 11 | NUMTODSINTERVAL(n, 'interval_unit') | 支持 | 将指定数字n转为 INTERVAL DAY TO SECOND 文本。 |
| 12 | NUMTOYMINTERVAL(n, 'interval_unit') | 支持 | 将指定数字n转为 INTERVAL YEAR TO MONTH 文本。 |
| 13 | 1. ROUND(date) 1. ROUND(date, fmt) |
支持 | 将指定日期date 四舍五入到指定的单位。 |
| 14 | SESSIONTIMEZONE | 支持 | 返回当前会话的时区的值,返回类型是时区偏移量或时区区域名称 |
| 15 | SYS_EXTRACT_UTC(datetime_with_timezone) | 支持 | 从具有时区偏移量或时区名的日期时间值datetime_with_timezone 中提取 UTC。 |
| 16 | SYSDATE | 支持 | 返回数据库服务器所在的操作系统设置的当前日期和时间。 |
| 17 | SYSTIMESTAMP | 支持 | 返回数据库服务器所在的操作系统设置的当前日期和时间,包括小数秒和时区。 |
| 18 | TO_CHAR(expr [, fmt [, 'nlsparam' ] ]) | 支持 | 根据格式fmt 将指定的日期时间或间隔表达式expr 转为字符串。 |
| 19 | TO_DSINTERVAL(str, [ DEFAULT return_value ON CONVERSION ERROR ]) | 支持 | 将指定的字符串str 转为 INTERVAL DAY TO SECOND 类型的值。 |
| 20 | TO_TIMESTAMP(str [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 支持 | 将指定的字符串str转为TIMESTAMP 类型的值。 |
| 21 | TO_TIMESTAMP_TZ(str [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 支持 | 将指定字符串str 转为TIMESTAMP WITH TIME ZONE 类型的值。 |
| 22 | TO_YMINTERVAL(str, [ DEFAULT return_value ON CONVERSION ERROR ]) | 支持 | 将指定字符串str 转为 INTERVAL MONTH TO YEAR 类型的值。 |
| 23 | TRUNC(date) TRUNC(date, fmt) |
支持 | 将指定日期date 截断到指定单位。 |
| 24 | TZ_OFFSET(tz) | 支持 | 返回参数tz对应的时区偏移量。 |
通用比较函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | GREATEST(expr [, expr ]...) | 支持 | 返回给定参数列表中的最大值 |
| 2 | LEAST(expr [, expr ]...) | 支持 | 返回给定参数列表中的最小值 |
转换函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | ASCIISTR(str) | 支持 | 使用数据库字符集将任何字符集中的字符串转换为 ASCII 字符串,非 ASCII 字符转换为 \xxxx 格式,其中 xxxx 表示 UTF-16 代码单元,注意返回值与数据库字符集有关。 |
| 2 | BIN_TO_NUM(expr [, expr ]... ) | 支持 | 将指定参数位向量列表转换为数字 |
| 3 | CAST({ expr } AS type_name) | 支持 | 将指定参数expr从一种类型转换为另一种类型 |
| 4 | CHARTOROWID(rowid_str) | 支持,有差异 | 将指定字符串 rowid_str 转换为 ROWID 数据类型,注意 rowid_str 字符 与 oracle 格式不同 |
| 5 | CONVERT(char, dest_char_set[, source_char_set ]) | 支持 | 将指定字符串char从一个字符集source_char_set(默认值为数据库字符集)转为另一个字符集 dest_char_set。 |
| 6 | HEXTORAW(str) | 支持 | 将指定参数str的十六进制值转为原始值。 |
| 7 | NUMTODSINTERVAL(n, 'interval_unit') | 支持 | 把参数 n 转为以参数 interval_unit 为单位的 INTERVAL DAY TO SECOND 数据类型的值。 |
| 8 | NUMTOYMINTERVAL(n, 'interval_unit') | 支持 | 把参数 n 转为以 interval_unit 为单位的 INTERVAL YEAR TO MONTH 数据类型的值。 |
| 9 | RAWTOHEX(raw) | 支持 | 将原始值raw转换为一个包含其十六进制表示的字符值。 |
| 10 | ROWIDTOCHAR(rowid) | 支持,有差异 | 将给定 rowid 值转为 VARCHAR2 类型, 注意 rowid 与 oracle 格式不同。 |
| 11 | TO_BINARY_DOUBLE(expr [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 部分支持,有差异 | 将表达式expr 转换为双精度浮点数,注意差异包括: 1. nlsparam参数仅支持 "NLS_NUMERIC_CHARACTERS" 1. 存在输出结果表示方式不同,Oracle使用科学计数法表示。 |
| 12 | TO_BINARY_FLOAT(expr [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 部分支持,有差异 | 将表达式expr 转换为浮点数,注意差异包括: 1. 存在少部分fmt 格式与 Oracle 未匹配 1. nlsparam参数仅支持 "NLS_NUMERIC_CHARACTERS" 1. 存在输出结果表示方式不同,Oracle使用科学计数法表示。 |
| 13 | TO_CHAR (character) | 支持 | 将 NCHAR、 NVARCHAR2,或 CLOB 数据character转换为 VARCHAR2 数据类型。 |
| 14 | TO_CHAR(date [, fmt [, 'nlsparam' ] ]) | 部分支持 | 将日期时间类型或间隔类型date 根据格式 fmt 转化为字符串,注意差异包括: 1. 存在部分 fmt 格式 未兼容,如‘TS DS’,TZR 等 1. nlsparam 参数仅支持 'nls_date_language = ''American'' ' |
| 15 | TO_CHAR(n [, fmt [, 'nlsparam' ] ]) | 部分支持 | 将数值n 根据格式fmt 转换为 VARCHAR2 类型的值,注意 'nlsparam' 参数 仅支持 NLS_NUMERIC_CHARACTERS = ''dg'' |
| 16 | TO_DATE(char [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 部分支持 | 将日期字符串char 根据格式fmt 转为 日期DATE 类型的值,注意 'nlsparam' 参数 仅支持 'NLS_DATE_LANGUAGE = American' |
| 17 | TO_DSINTERVAL(str, [ DEFAULT return_value ON CONVERSION ERROR ]) | 支持 | 将字符串 str 转为 INTERVAL DAY TO SECOND 类型的值。 |
| 18 | TO_MULTI_BYTE(char) | 支持 | 将指定参数char中的所有单字节字符转换为相应的多字节字符,并返回与参数相同数据类型的值。 |
| 19 | TO_NUMBER(expr [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 部分支持 | 将指定参数expr 根据格式fmt 转换为 NUMBER 类型的值,注意 'nlsparam' 参数 仅支持 NLS_NUMERIC_CHARACTERS = ''dg'' |
| 20 | TO_SINGLE_BYTE(char) | 支持 | 将指定参数char中的所有多字节字符转换为相应的单字节字符,并返回与参数相同数据类型的值。 |
| 21 | TO_TIMESTAMP(str [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 部分支持 | 将指定字符串str 按格式fmt 转换为 TIMESTAMP 类型的值,注意 nlsparam 参数 仅支持 'nls_date_language = ''American'' ' |
| 22 | TO_TIMESTAMP_TZ(str [ DEFAULT return_value ON CONVERSION ERROR ] [, fmt [, 'nlsparam' ] ]) | 部分支持 | 将指定字符串str 按格式fmt 转为 TIMESTAMP WITH TIME ZONE 类型的值,注意nlsparam 参数 仅支持 'nls_date_language = ''American'' ' |
| 23 | TO_YMINTERVAL(str, [ DEFAULT return_value ON CONVERSION ERROR ]) | 支持 | 将指定字符串str转为 INTERVAL MONTH TO YEAR 类型的值。 |
编码解码函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | DUMP(expr[, return_fmt [, start_position [, length ] ] ]) | 支持 | 返回一个 字符串,其包含 expr 的数据类型代码、字节长度和内部表示。 |
| 2 | VSIZE(expr) | 支持 | 返回表达式expr 内部表示的字节数。 |
| 3 | DECODE (expr, search, result [, search, result ...][, default]) | 支持 | 根据一个或多个指定的映射关系将指定的参数解码,然后返回解码后的值。 |
| 4 | ORA_HASH | 支持 | 计算指定表达式expr的哈希值 |
环境和标识符函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | UID | 支持 | 返回当前会话用户的唯一标识。 |
| 2 | USER | 支持 | 返回当前会话用户的名称 |
| 3 | USERENV | 支持 | 返回用户环境信息 |
| 4 | SYS_CONTEXT('namespace', 'parameter' [, length ]) | 部分支持 | 返回给定上下文相关联参数parameter的值,注意 'namespace' 参数 仅支持 'USERENV' && 'XS$SESSION' |
| 5 | SYS_GUID | 支持 | 生成并返回一个由 16 个字节组成的全局唯一标识符。 |
空值相关的函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | COALESCE(expr1[, expr2 ...]) | 支持 | 返回参数列表中第一个非 NULL 值,最少必须指定两个参数。 |
| 2 | LNNVL(condition) | 支持 | 如果条件为 TRUE 则返回 FALSE; 如果条件为 FALSE 或者 UNKNOWN 则返回 TRUE。 |
| 3 | NANVL(num1, num2) | 支持 | 如果 num1 是 NaN, 返回 num2,否则返回 num1。 |
| 4 | NULLIF(expr1, expr2) | 支持 | 比较两个参数,如果两个参数相等则返回 NULL,否则返回第一个参数。 |
| 5 | NVL(expr1, expr2) | 支持 | 如果 expr1 为 NULL,则返回 expr2。 如果 expr1 不为 NULL,则 NVL 返回 expr1。 |
| 6 | NVL2(expr1, expr2, expr3) | 支持 | 如果 expr1 不为 NULL, 则返回 expr2,否则返回 expr3。 |
JSON 函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | JSON_OBJECT | 支持 | 返回一个 JSON 对象,其成员为参数指定的键值对。 |
XML 函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | EXTRACT(XMLType_instance, XPath_string, namespace_string) | 支持 | 按 XPath_string 提取XMLType_instance 内容,返回类型是XMLtype |
| 2 | EXTRACTVALUE(XMLType_instance, XPath_string, namespace_string) | 支持 | 按 XPath_string 提取XMLType_instance 中的 XML 值 |
| 3 | XMLSEQUENCE | 支持 | 提取 XML 数据的所有顶层节点,将其转换为一个可迭代的序列。通常与 TABLE、EXTRACT 等函数配合使用。 |
| 4 | XMLAGG | 支持 | XMLAgg 是一个聚合函数, 接受 XML 片段的集合并返回聚合的 XML 文档 |
| 5 | XMLEXISTS | 支持 | 检查给定的 XPath 表达式是否返回任意节点,如果是,返回 TRUE; 否则,返回 FALSE。 |
| 6 | XMLELEMENT | 支持 | 生成具有给定名称、属性和内容的 XML 元素。 |
| 7 | XMLPARSE | 支持 | 解析 XML 文档或片段,返回一个 XMLType。 |
| 8 | XMLTABLE | 支持 | 使用 XPATH 表达式提取输入的 XML 数据,并且将提取到的数据分解为表中的列,返回一张虚拟表。 |
聚合函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | APPROX_COUNT_DISTINCT(expr) | 支持 | 对参数expr 列去重后的行进行计算,返回行数,且该值是近似值,用于估算一个列或表达式中不同值的数量。 |
| 2 | AVG([ DISTINCT | ALL ] expr) | 支持 | 用于计算expr 平均值。 |
| 3 | CORR(expr1, expr2) | 支持 | 返回一组数字对(expr1, expr2)的相关系数 |
| 4 | COUNT({ * | [ DISTINCT | ALL ] expr }) | 支持 | 返回查询 expr 的行数 |
| 5 | COVAR_POP(expr1, expr2) | 支持 | 用于计算一组数值对的总体协方差 |
| 6 | COVAR_SAMP(expr1, expr2) | 支持 | 用于计算一组数值对的样本协方差 |
| 7 | CUME_DIST | 支持 | 用于计算一组值中的某个值的累积分布 |
| 8 | DENSE_RANK | 支持 | 计算有序行组中某一行的排名,并以数字形式返回排名 |
| 9 | FIRST | 支持 | 用于对一组行中的值进行操作,将这组行按照指定的排序规则排序后返回排在第一值 |
| 10 | GROUPING_ID | 支持 | 用于计算一组表达式的组合值,返回一个数字,代表行所处的 GROUP BY 层级。 |
| 11 | GROUPING | 支持 | 标识结果集中的行是否由 ROLLUP、CUBE 或 GROUPING SETS 生成的聚合行,通过返回 0 或 1 来区分普通分组行和超级聚合行(如小计、总计) |
| 12 | LAST | 支持 | 用于对一组行中的值进行操作,将这组行按照指定的排序规则排序后返回排在最后的值 |
| 13 | LISTAGG | 支持 | 用于列转行,将多行数据合并为单个字符串 的聚合函数 |
| 14 | MAX | 支持 | 用于计算最大值 |
| 15 | MEDIAN | 支持 | 用于返回一组数值的中值,即将一组数值排序后返回居于中间的数值。 |
| 16 | MIN | 支持 | 用于计算最小值 |
| 17 | PERCENT_RANK | 支持 | 用来计算一组值中的某个值的累积分布,计算某一个数在一个集合中的对应位置百分比,返回值范围为 (0, 1]。 |
| 18 | PERCENTILE_CONT | 支持 | 一个假定连续分布模型的逆分布函数,根据指定百分比值和排序规范,返回一个在该排序规范的给定百分比值的内插值,在计算中忽略空值。 |
| 19 | PERCENTILE_DISC | 支持 | 根据一个百分位值和指定排序规范,返回大于或等于百分位值的最小累积分布值(相对于同一排序规范)的值,在计算中忽略空值。 |
| 20 | RANK | 支持 | 用于计算一个值在一组值的排名。 |
| 21 | STDDEV_POP | 支持 | 将数值型数据作为参数计算总体标准差。 |
| 22 | STDDEV_SAMP | 支持 | 将数值型数据作为参数计算样本标准差。 |
| 23 | STDDEV | 支持 | 用于计算一组数值型数据标准差。 |
| 24 | SUM([ DISTINCT | ALL ] expr) | 支持 | 返回expr值的总和。 |
| 25 | VAR_POP | 支持 | 返回一组数值集合的总体方差 |
| 26 | VAR_SAMP | 支持 | 返回一组数值集合的样本方差 |
| 27 | VARIANCE | 支持 | 返回指定列的方差 |
| 28 | XMLAGG | 支持 | 接收 XML 片段的集合并返回聚合的 XML 文档 |
分析函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | AVG | 支持 | 计算指定列expr 的平均值 |
| 2 | CORR(expr1, expr2) | 支持 | 用于计算一组数字对(expr1, expr2)的皮尔逊相关系数 |
| 3 | COUNT(expr) | 支持 | 统计指定列 expr的行数 |
| 4 | COVAR_POP | 支持 | 用于计算一组数值对的总体协方差 |
| 5 | COVAR_SAMP | 支持 | 用于计算一组数值对的样本协方差 |
| 6 | CUME_DIST | 支持 | 用于计算一组值中的某个值的累积分布 |
| 7 | DENSE_RANK | 支持 | 计算有序行组中某一行的排名,并以数字形式返回排名。 |
| 8 | FIRST_VALUE | 支持 | 在分析语句analytic_clause 中的每个分组(窗口)内,按指定规则排序,返回第一行 expr 值 |
| 9 | FIRST | 支持 | 用于对一组行中的值进行操作,按照指定的排序规则进行排序,返回排在第一的值 |
| 10 | LAG | 支持 | 在某个分组(窗口)内,按指定规则排序,返回列expr 往前偏移 offset 行的数据 |
| 11 | LAST_VALUE | 支持 | 在analytic_clause 分析语句中的每个分组(窗口)内,按指定规则排序,返回最后一行的 expr 值 |
| 12 | LAST | 支持 | 用于对一组行中的值进行操作,将这组行按照指定的规则排序,返回排在最后的值 |
| 13 | LEAD | 支持 | 在某个分组(窗口)内,按指定规则排序,返回列expr 往后偏移 offset 行的数据 |
| 14 | LISTAGG | 支持 | 用于列转行,将多行数据合并为单个字符串 的聚合函数 |
| 15 | MAX | 支持 | 计算指定列expr 在某个分组(窗口)内的最大值 |
| 16 | MEDIAN | 支持 | 计算指定列expr 在某个分组(窗口)内的中间值 |
| 17 | MIN | 支持 | 计算指定列expr 在某个分组(窗口)内的最小值 |
| 18 | NTH_VALUE | 支持 | 返回 analytic_clause 定义的窗口中第 n 行的expr 值 |
| 19 | NTILE | 支持 | 将有序数据集划分为若干个组,并为每一行分配适当的组号 |
| 20 | PERCENT_RANK | 支持 | 计算一组值中的某个值的累积分布 |
| 21 | RANK | 支持 | 计算一个值在一组值的排名 |
| 22 | RATIO_TO_REPORT | 支持 | 计算一个值与一组值之和的比率 |
| 23 | REGR_(Linear Regression) | 支持 | 一组 REGR_ 开头的线性回归函数,用于计算简单线性回归模型的统计指标(如斜率、截距、决定系数等)。 |
| 24 | ROW_NUMBER | 支持 | 为查询结果的每一行分配一个唯一的序号,序号从 1 开始,根据指定的排序规则(ORDER BY)和分组规则(PARTITION BY)动态生成。 |
| 25 | STDDEV_POP | 支持 | 将数值型数据作为参数计算总体标准差,总体标准差是总体方差的算术平方根。 |
| 26 | STDDEV_SAMP | 支持 | 将数值型数据作为参数计算样本标准差,样本标准差是样本方差的算术平方根。 |
| 27 | STDDEV | 支持 | 用于计算一组数值型数据标准差 |
| 28 | SUM | 支持 | 计算指定列expr 在某个分组(窗口)内的和 |
| 29 | VAR_POP | 支持 | 返回一组数值集合的总体方差 |
| 30 | VAR_SAMP | 支持 | 返回一组数值集合的样本方差 |
| 31 | VARIANCE | 支持 | 返回指定列的方差 |
对象引用函数
| 序号 | Oracle 数据库函数 | TDSQL PG 数据库是否支持 | 描述 |
|---|---|---|---|
| 1 | VALUE | 支持 | VALUE 函数通常与 对象类型(Object Types)或嵌套表(Nested Tables)相关,用于直接引用某个对象实例的值 |