金仓数据库 KingbaseES 与 Oracle 的区别

基本数据类型差异

Oracle PostgreSQL
Varchar2 varchar
number numeric
date timestamp/date/time
不支持boolean,可通过0/1代替 支持boolean
null null

部分函数的使用简析:

(1)coalesce(COL1,COL2,COL3):返回参数中第一个非null字段值

例如:coalesce(COL1,0):如果COL1为null或‘’,则返回默认值0;否则返回COL1的值;

(2)extract(date):对日期特定部分提取(oracle和postgresql使用一致)

例如:extract(year from now());>>>2018    
            extract(month from now());>>>9
            extract(month from timestamp '2018-09-10 13:59:59');>>>9

(3)对时间截取trunc()和date_trunc()

>>oracle--trunc()的用法:
trunc(sysdate,'yyyy');//返回当前年的第一天>>>2018-01-01
trunc(sysdate, 'mm');//返回当前月的第一天>>>2018-09-01
trunc(sysdate, 'dd');//返回当前时间的年月日>>>2018-09-14
trunc(sysdate, 'hh');//返回当前小时>>>2018-09-14 13:30:50

>>postgreSQL--date_trunc()用法:                                                                                                                                 
date_trunc('year',now());//返回当前时间年的第一天>>>2018-01-01 00:00:00
date_trunc('month',now());//返回当前月的第一天>>2018-09-01 00:00:00
date_trunc('day',now()); //返回当前时间的年月日>>2018-09-14 00:00:00             
date_trunc('second',now()); //返回当前时间的年月日时分秒>>2018-09-14 13:30:50               

(3)条件判断

Oracle:
  Select DECODE (payments_info,'CR','Credit','DB','Debit', null) FROM dual;
PostgreSQL:
  Select CASE
      WHEN foo = 'CR'   THEN 'Credit'
      WHEN foo = 'DB'   THEN 'Debit'
      ELSE 'default'
  END
  FROM t2;

1. 常用函数

1.1. 有区别的函数

表 1.1.6  有区别的函数

序号

Oracle 函数名

KingbaseES 函数名

功能简要说明

数值函数

1

REMAINDER(n2,n1)

/

取 第一个参数除以 第二个参数的余 数,参数类型是 number 或者可以 转换为 number 的

2

NVL(n2,n1)

COALESCE(n2,n1)

当 n2 为 NaN 时,函数返回 n1 当 n2 不为 NaN 时, 函数返回 n2,参 数类型是浮点数

3

/

cbrt(dp)

立方根函数

4

/

degrees(dp)

把 弧度转换为角度

5

/

radians(dp)

把 角度转换为弧度

6

/

div(y numeric,x numeric)

y/x 的整数商

7

/

pi()

常数值

3.14159265358979

8

/

scale(numeric)

返回参数的精度 ,小数点后位数

9 decode()

case...when...then

条件判断

字符函数

1

CHR(int,[USING NCHAR_CS])

chr(int)

返回 int 类型参 数指定的值的字 符,KingbaseES 不允许为 0,Oracle 可以输入 0

2

NCHR(number)

/

返回 number 类型值的 国际字符,Kingb aseES 不支持超出 字符范围的数值

3

REGEXP_REPLACE (source_char,pattern, replace_string,position, occurrence,match_param)

regexp_replace(string text,pattern text, replacement text [, flags])

替换 匹配。Oracle 与 KingbaseES 使用 方式部分不同, Oracle 中,position 代表从源第几个字符开始 occurrence 代表第几次替换。 KingbaseES 没有这个参数

4

REGEXP_COUNT(source_char pattern[,position [,match_param]])

regexp_count(source_char,pattern [,position, [,match_param]])

返回 匹配字符串数量。 Oracle 与 KingbaseES 的某些数据类型不同 导致结果不同,例如 time 类型。 Oracle 与 KingbaseES 的正则中 match_param 的意义有部分不同导致结 果不同,可参考 正则表达式元语法 。

5

REGEXP_INSTR(source_char, pattern [,position[,occurrence [,return_option [,match_param [,subexpr]]]]])

regexp_instr(source_char,pattern [,position [,occurrence [,return_option [,match_param [,subexpr]]]]])

返回字 符串的起始位置,或者结束位置。 Oracle 与 KingbaseES 的某些数据类型不同 导致结果不同,例如 time 类型。 Oracle 与 KingbaseES 的正则中 match_param 的意义有部分不同导致结 果不同,可参考 正则表达式元语法 。

6

/

strpos(string,substring)

position(substring in string)

返回指定字符串位置

7

/

convert(expr1 text,[,expr2 text],expr3 text)

把字符串 转换为 expr3 中声明的编码

8

NLS_INITCAP(char,[NLS_SORT = sort])

INITCAP(string)

将每一个词 的第一个字母转 换为大写形式并 把剩下的字母转 换为小写形式。

9

NLS_LOWER(char,nlsparam)

lower(string)

将字符串 转换为小写形式

10

CONCAT(char1,char2)

concat(str "any" [, str "any" [, ...]])

串接所有参数的 文本表示。NULL 参数被忽略。 Oracle :支持 2 个参数。 KingbaseES :支持多个参数

11

/

regexp_matches(string text, pattern text[,flags text])

返回对 string 匹配一个 POSIX 正则表达式 得到的所有子串

日期类函数

1

CURRENT_TIMESTAMP (precision)

CURRENT_TIMESTAMP

返 回当前日期时间 区别是精度不同

2

/

age(timestamp,timestamp)

age(timestamp)

减去参数,生成一个使用年、月(而不是只用日)的 "符号化" 的结果

3

/

clock_timestamp()

返回 当前日期和时间

4

/

date_part(text,timestamp)

date_part(text,interval)

返回 日期时间的子域

5

TRUNC(date,fmt)

date_trunc(text,timestamp)

date_trunc(text,interval)

返回截断到参数指定的日期时间

6

TO_DSINTERVAL(sql_format)

make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days intDE FAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0)

构造一个 interval,输入参数一个是字符串,一 个是数字

7

/

now()

返回 当前日期和时间

比较函数

1

GREATEST(expr,expr,expr,...)

LEAST(expr,expr,expr,...)

GREATEST(value[, ...])

LEAST(value [,...])

选取最大或者最小的数值

oracle:只要有一个参数是 null,则结果返回 null

KingbaseES:全部参数是 null 才返回 null

序列函数

1

/

currval(regclass)

返回最近一 次用 nextval 获取 的指定序列的值

2

/

nextval(regclass)

递增 序列并返回新值

3

/

setval(regclass,bigint)

setval(regclass,bigint,boolean)

设置序列的当前值

4

/

lastval()

返回最近一 次用 nextval 获取 的任何序列的值

大对象函数

1

/

clob_import(string,string)

将指定的文件以 clob 大对象的形 式导入数据库。

2

/

clob_export(clob,string,string)

将 clob 大对象的内容导 出到磁盘文件。

3

/

blob_import(string,string)

将指定的文件以 blob 大对象的形 式导入数据库。

4

/

blob_export(blob,string,string)

将 blob 大对象的内容导 出到磁盘文件。

Environment 和 Identifier 函数

1

/

version()

返回当前版本号

分析和聚集函数

1

COLLECT([DISTINCT UNIQUE] column [ORDER BY expr])

array_agg(expression)

形式上类似: KingbaseES 返回 参数类型的数组 Oracle 返回参 数类型的嵌套表

2

CORR_KCORR_S(expr1,expr2,

[COEFFICIENT ONE_SIDED_SIG ONE_SIDED_SIG_POS

ONE_SIDED_SIG_NEG TWO_SIDED_SIG])

/

相关率

3

LISTAGG(measure_expr, delimiter) WITHIN GROUP(order_by_clause)

string_agg(expression,delimiter)

输入 值连接成一个串 ,用定界符分隔

4

MEDIAN(expr)

/

返回中间值

5

STATS_BINOMIAL_TEST (expr1, expr2, p)

/

统 计二项测试是一 个精确概 率测试用于二分 变量,那里只有两 个可能值存在。 它测试一个样品 之间的差异比例 和给定的比例

6

STATS_CROSSTAB(expr1,expr2)

/

用于分析两个变量

7

STATS_F_TEST(expr1,expr2)

/

测试两个方差是否有明显的不同

8

STATS_KS_TEST(expr1,expr2)

/

STATS_KS_TEST 是柯尔莫哥洛 夫斯米尔诺夫函 数,它比较 expr1 和 expr2,判断他们是来自 同一个总体还是来自具有相同分布的总体。

9

STATS_MODE(expr)

/

将 expr 传入的一组值作为分析对象, 返回其中出现频率最高的值。

10

STATS_MW_TEST(expr1,expr2)

/

通过曼惠特尼测试比较两个独立样本,以检验 两个总体具有相同分布函数的零假设 与两个不同分布函数的备择假设

11

STATS_ONE_WAY_ANOVA (expr1, expr2)

/

单向方差分析函 数 (统计一维方差 分析) 测试差异在 意味着 (为团体或 变量), 通过比较 两种统计学意义 不同的估计方差

12

STATS_T_TEST_ONE(expr1)

/

单样本检验

13

STATS_T_TEST_PAIRED (expr1, expr2)

/

双样本匹配检验

14

STATS_T_TEST_INDEP (expr1,expr2)

/

具有相同方差的两个独立组检验

JSON 函数

1

/

to_json(anyelement)

to_jsonb(anyelement)

返回为 json 或者 jsonb

2

/

array_to_json(anyarray [,pretty_bool])

把数组作为一个 JSON 数组返回

3

/

row_to_json(record [,pretty_bool])

把行作为一个 JSON 对象返回

4

/

json_build_array(VARIADIC "any")

jsonb_build_array(VARIADIC "any")

从一个可变参数列表构造一个可能包含异质类型的 JSON 数组。

5

/

json_build_object(VARIADIC "any")

jsonb_build_object(VARIADIC "any")

从一个可变参数列表构造一个 JSON 对象

6

/

json_object(text[])

jsonb_object(text[])

从一个文本数组构造一个 JSON 对象

7

/

json_array_length(json)

jsonb_array_length(jsonb)

返回最外层 JSON 数组中的元素数量

8

/

json_each(json)

jsonb_each(jsonb)

json_each_text(json)

jsonb_each_text(jsonb)

扩展最外层的 JSON 对象成为一组键 / 值对

9

/

json_extract_path( from_json json,VARIADIC path_elems text[])

jsonb_extract_path( from_json jsonb,VARIADIC path_elems text[])

返回 path_elems 指向的 JSON 值(等效于 #> 操作符)

10

/

json_extract_path_text( from_json json, VARIADIC path_elems text[])

jsonb_extract_path_text( from_json jsonb, VARIADIC path_elems text[])

text 以文本返回由 path_elems 指向的 JSON 值(等效于 #>> 操作符)

11

/

json_object_keys(json)

jsonb_object_keys(jsonb)

返回最外层 JSON 对象中的键集合

12

/

json_populate_record(base anyelement, from_json json)

jsonb_populate_record(base anyelement, from_json jsonb)

扩展 from_json 中的对象成一个行,它的 列匹配由 base 定义的记录类型

13

/

json_populate_recordset (base anyelement, from_json json)

jsonb_populate_recordset (base anyelement, from_json jsonb)

扩展 from_json 中最外的对象数组为一个集合, 该集合的列匹配由 base 定义的记录类型

14

/

json_array_elements(json)

jsonb_array_elements(jsonb)

把一个 JSON 数组扩展成一个 JSON 值的集合

15

/

json_array_elements_text(json)

jsonb_array_elements_text (jsonb)

把一个 JSON 数组扩展成一个 text 值集合

16

/

json_typeof(json)

jsonb_typeof(jsonb)

把最外层的 JSON 值的类型作为一个文本字符

串返回

17

/

json_to_record(json)

jsonb_to_record(jsonb)

从一个 JSON 对象构建一个任意的记录

18

/

json_to_recordset(json)

jsonb_to_recordset(jsonb)

从一个 JSON 对象数组构建一个任意的记录集合

19

/

json_strip_nulls(from_json json)

jsonb_strip_nulls(from_json jsonb)

返回具有空值对象域的 from_json。其它空值不变

20

/

jsonb_set(target jsonb,

path text[],new_value jsonb,

[create_missing boolean])

若 create_missing 为真(缺省是 true) 并且通过 path 指定部分不存在,那 么返回 target,它具有 path 指定部分, new_value 替换部分, 或者 new_value 添加部分

21

/

jsonb_insert(target jsonb, path text[], new_value jsonb,[insert_after boolean])

返回被插入了 new_value 对应的 target

22

/

jsonb_pretty(from_json jsonb)

作为缩进 JSON 文本返回 from_json

1.2. 无区别的函数

表 1.2.17  无区别的函数

序号

Oracle 函数名

KingbaseES 函数名

功能简要说明

数值函数

1

ABS(n)

abs(x)

绝对值

2

ACOS(n)

acos(x) acosd(x)

反余弦

3

ASIN(n)

asin(x) asind(x)

反正弦

4

ATAN(n)

atan(x) atand(x)

反正切

5

ATAN2(n1,n2)

atan2(y, x)

y/x 反正切

6

TAN(n)

tan(x) tand(x)

正切

7

EXP

exp(dp or numeric)

指数

8

FLOOR

floor(dp or numeric)

不大于 参数的最大整数 mod (y, x)

9

MOD

mod(y, x)

y/x 的余数

10

SIGN

sign(dp or numeric)

参数的符号(-1,0,+1)

11

WIDTH_BUCKET

width_bucket(dp or numeric, dp or numeric, dp or numeric, int

返回一个桶

12

BITAND (expr1,expr2)

bitand(expr1,expr2 )

按位与 ,参数类型都是 number 或者可以 转换为 number 的

13

LN(n)

ln(dp or numeric)

自然对数

14

LOG(n2,n1)

log(dp or numeric)

log(b numeric,x numeric)

KingbaseES 中单个参数是以 10 为底的对数两个参数的形式 KingbaseES 和 Oracle 一致

15

POWER(n2,n1)

power(a dp,bdp)

power(a numeric, b numeric)

返回 a 的 b 次幂

16

ROUND (n[, integer])

round(dp or numeric)

round(v numeric, s int)

圆整为最接近的整数

圆整为 s 位小数数字

17

SQRT ( n )

sqrt(dp or numeric)

平方根

18

TRUNC ( n1[,n2])

trunc(dp or numeric)

trunc(v numeric, s int)

截断(向零靠近)

截断为 s 位 小数位置的数字

19

CEIL ( n )

ceil(dp or numeric)

ceiling(dp or numeric)

不小于 参数的最小整数

20

BIN_TO_NUM(expr,...)

bin_to_num(expr ,...)

将二进制数转换为十进制。将任何数据类型或可以隐式转 换为数据类型的非数据类型作为参数,每个 expr 必须为 0 或 1。

字符函数

1

SUBSTR

substring (string [from int] [for int])

提取子串

2

RPAD

rpad(string text,length int [,fill text])

用字符串 expr3 (第三个参数) 将字符串 expr1 (第一个参数) 从右边填充到指定的长度 expr2 ( 第二个参数),在 第三个参数缺省 时,填充空格。

3

REPLACE(char,search_string, replacement_string)

replace(string text, from text, to text)

将 string 中 出现的所有子串 from 替换为子串 to

4

REGEXP_SUBSTR( source_char, pattern, position, occurrence, match_param ,subexpr)

regexp_substr (string text, pattern text [, position int [, occurrence int [, flags text [, num int]]]])

在 string 搜索一个 POSIX 正则表达式字 符串,返回的搜 索到的子字符串

5

TRANSLATE(expr,from_string, to_string)

translate (string text, from text, to text)

string 中任何 匹配 from 集合中 一个字符的字符 会被替换成 to 集 合中的相应字符

6

INSTRB(string, substring, position, occurrence)

instrb(expr1 text, expr2 text, [expr3 int [,expr4 int]])

在父字符串 expr1 中的第 expr3 个位 置(从 1 开始)以 字符为单位开始 查找第 expr4 次出 现的子字符串的 位置,0 表示不包 含子字符串 expr2 。如果 expr3 为负 ,则从 expr1 的倒 数第 expr3 个位置 开始反向查找, 位置依然是从字 符串开头算起。

7

LENGTH

length(string)

length(string bytea,encoding name)

返回字符串长度

8

reverse(str)

reverse(str)

返回 反转的字符串。

9

UPPER

upper(string)

将字符串 转换成大写形式

10

LPAD(expr1 [,n,expr2])

lpad(string text,length int[,fill text])

将 string 通过前置字符 fill (默认是一个 空格)填充到长 度 length。如果 string 已经长于 length ,则它被( 从右边)截断。

11

LTRIM(char,set)

ltrim(string text[, characters text])

从 string 的开头删除最 长的只包含 characters (默认是一 个空格)的字串 。在兼容 ORACLE 的时候(ora_func_style 为 true) ,characters 只 能是一个字符。 ora_func_style 为 false 时可 以为多个字符。

12

RTRIM(char,set)

rtrim(string text[, characters text])

从 string 的结尾 删除最长的只包 含 characters( 默认是一个空格 )的字串。在兼 容 ORACLE 的时候 (ora_func_style 为 true) ,characters 只能是一个字符。 ora_func_style 为 false 时可 以为多个字符。

13

TRIM ([LEADING |TRAILING| BOTH[ trim_character] from] [trim_character from] trim_source )

trim([leading |trailing| both] [characters from] string)

从 string 的开头 / 结尾 / 两端删除 最长的只包含 characters (默认是 一个空格)的串

14

ASCII(char)

ascii(string)

返回参数第一个 字符的 ASCII 代码

15

LENGTHB(char)

lengthb(string)

返回字符串的字节数

16

SUBSTRB( char,position[, sub string_length])

substrb(expr1 text,[from] expr2 int[, [for] expr3 int])

取 子字符串,在父 字符串 expr1 (第 一个参数) 中的第 expr2 (第二个参 数) 个字节位置开 始取 expr3 (第三 个参数) 个字节, 如果第三个参 数缺省,则从第 expr2 (第二个参数 ) 个位置开始取右 面部分的全部, 如果第二个参数 为负,则是从父 字符串的尾部截 取 expr3 个字节。

日期时间

1

EXTRACT (field from expr)

extract (fieldfrom timestamp) extract(field from interval)

从当前日期时 间抽取时间字段

2

TO_CHAR (datetime,fmt)

to_char (timestamp, text)

日期 时间转换为字符

3

TO_TIMESTAMP (char, fmt)

to_timestamp (text, text)

返回日期时间

4

ADD_MONTHS ( date , integer )

ADD_MONTHS (expr1 日期 / 时间类型,expr2 INT)

返回 expr1 加上 expr2 个 月的日期时间值

5

LAST_DAY ( date )

LAST_DAY (expr1 日期 / 时间类型)

返回日期中的 月份的最后一天

6

MONTHS_BETWEEN ( date1 , date2 )

MONTHS_BETWEEN ( date1 , date2 )

返 回日期的月份差

7

NEXT_DAY (date , char )

NEXT_DAY (expr1 日期 / 时间类型,expr2 TEXT)

返回 expr 1 日期后的第一个 由参数 expr2 命名 的日期,参数 expr2 的值必须在周 一到周日范围中

8

SYSDATE

SYSDATE

返 回当前系统日期

9

SYSTIMESTAMP

SYSTIMESTAMP

返 回当前系统时间

10

TO_DATE(char, fmt)

to_date(text, text)

返回日期值 输入 参数一个是字符 串,一个是数字

11

TO_TIMESTAMP (char, fmt)

make_time(hour int, min int, sec double precision)

make_timestamp (year int, month int, day int, hour int, min int, sec double precision)

make_timestamptz (year int, month int, day int, hour int, min int, sec double precision, [ timezone text ])

to_timestamp (text, text)

返回日期时间值 输入 参数一个是字符 串,一个是数字

12

OVERLAPS

(start1,end1) OVERLAPS (start2,end2)

在两个时间域( 用它们的端点定 义)重叠的时候 得到真,当它们 不重叠时得到假

13

CURRENT_DATE

current_date

当前日期

大对象函数

1

EMPTY_BLOB()

EMPTY_CLOB()

empty_blob()

empty_clob()

返回空大对象

Decoding 函数

1

DECODE(expr,search,result, default)

decode(expr ,search, result, default)

将 expr 和 search 值一 个一个比较。如 果相等则返回 result 如果不等返回 default 值。

NULL 相关函数

1

COALESCE ( expr,...)

COALESCE(value [, ...])

COALE SCE 函数返回它的 第一个非空参数 的值。当且仅当 所有参数都为空 时才会返回空。

2

LNNVL(condition)

LNNVL(condition)

用于 where 条件中,condition 为真时返回假,假时返回真

3

NULLIF ( expr1 , expr2 )

NULLIF(value1, value2)

KingbaseES :value1 可以为 null oracle:value1 不能为 null

4

NVL(expr1, expr2)

NVL(expr1, expr2)

当 expr1 为 NULL 时,用 expr2 代 替本表达式的值

5

NVL2 ( expr1 , expr2 , expr3 )

NVL2 ( expr1 , expr2 , expr3 )

当 expr1 为 NULL 时,返回值为 expr3;否则为 expr2

Environment 和 Identifier 函数

1

sys_guid()

sys_guid()

返 回一个全局唯一 的标识符

2

uid

uid

返回目前执 行环境下的用户 ID

3

user

User /current_user

返回当前用户

分析和聚集函数

1

COUNT (* DISTINCT ALL expr )

count

非空 的输入行的数目

2

COVAR_POP ( expr1 , expr2 ) OVER (a nalytic_clause)

covar_pop(Y, X)

总体协方差

3

COVAR_SAMP( expr1 , expr2 ) OVER ( analytic_clause )

covar_samp(Y, X)

样本协方差

4

CUME_DIST( expr ,) WITHIN GROUP (ORDER BY expr)

cume_dist(args) WITHIN GROUP (ORDER BY sorted_args)

当 前行的相对排名

5

DENSE_RANK(expr,) WITHIN GROUP(ORDER BY expr)

dense_rank(args) WITHIN GROUP (ORDER BY sorted_args)

不带间 隙的当前行排名

6

MAX (DISTINCT ALL expr )

max(expression)

所有输入值中 expression 的最大值

7

MIN (DISTINCT ALL expr )

min(expression)

所有输入值中 expression 的最小值

8

PERCENT_RANK ( expr ,) WITHIN GROUP( ORDER BY expr)

percent_rank(args) WITHIN GROUP (ORDER BY sorted_args)

假想行的相 对排名,范围从 0 到 1

9

PERCENTILE_CONT ( expr ) WITHIN GROUP ( ORDER BY expr)

percentile_cont (fractions) WITHIN GROUP (ORDER BY sort_expression)

连续百分率

10

PERCENTILE_DISC ( expr ) WITHIN GROUP ( ORDER BY expr)

percentile_disc(fraction) WITHIN GROUP (ORDER BY sort_expression)

离散百分率

11

RANK(expr,) WITHIN GROUP ( ORDER BY expr)

rank(args) WITHIN GROUP (ORDER BY sorted_args)

假想 行的排名,为重 复的行留下间隔

12

REGR_SLOPE

regr_slope(Y, X)

由(X, Y)对决定的 最小二乘拟合的 线性方程的斜率

13

REGR_INTERCEPT

regr_intercept (Y, X)

由(X, Y)对决 定的最小二乘拟 合的线性方程的 y 截距

14

REGR_COUNT

regr_count(Y, X)

两个 表达式都不为空 的输入行的数目

15

STDDEV (DISTINC TALL expr )

stddev (expression)

输入值 的样本标准偏差

16

STDDEV_POP ( expr )

stddev_pop (expression)

输入值 的总体标准偏差

17

STDDEV_SAMP ( expr )

stddev_samp (expression)

输入值 的样本标准偏差

18

SUM (DISTINCT ALL expr )

sum(expression)

所有输入的 expression 的和

19

VAR_POP ( expr )

var_pop (expression)

输 入值的总体方差

20

FIRST

first_value (value any)

返回 在窗口帧中第一 行上计算的 value

21

FIRST_VALUE *

first_value (value any)

返回 在窗口帧中第一 行上计算的 value

22

LAG

lag(value anyelement [, offset integer [, default anyelement ]])

返回 value, 它在分区 内当前行的之前 offset 个位置的行 上计算;如果没 有这样的行,返 回 default 替代。 (作为 value 必 须是相同类型)。 offse t 和 default 都 是根据当前行计 算的结果。如果 忽略它们,则 offset 默认是 1,default 默认是空值

23

LAST

last_value (value any)

返回在 窗口帧中最后一 行上计算的 value

24

LAST_VALUE *

last_value (value any)

返回在 窗口帧中最后一 行上计算的 value

25

LEAD

lead(value anyelement [, offset integer [, default anyelement ]])

返回 value,它在分区 内当前行的之后 offset 个位置的行 上计算;如果没 有这样的行,返 回 default 替代。 (作为 value 必须 是相同类型)。offset 和 default 都 是根据当前行计 算的结果。如果 忽略它们,则 offset 默认是 1,default 默认是空值

26

NTH_VALUE *

nth_value(value any, nth integer)

返回在窗口帧 中第 nth 行(行从 1 计数)上计算的 value;没有这样 的行则返回空值

27

NTILE

ntile (num_buckets integer)

从 1 到参数 值的整数范围, 尽可能等分分区

28

ROW_NUMBER

row_number()

当前行在其分区 中的行号,从 1 计

29

CORR ( expr1 , expr2 )[OVER ( analytic_clause )]

corr(Y,X)[OVER(analytic_clause)]

相关系数

30

AVG (DISTINCT ALL expr ) OVER ( analytic_clause )

avg(expression)OVER ( analytic_clause )

所 有输入值的平均 值(算术平均)

XML 函数

1

XMLCOMMENT(value_expr)

xmlcomment(text)

创建了一个 XML 值

2

XMLCONCAT (XMLType_instance)

xmlconcat(xml[, ...])

由单个 XML 值组 成的列表串接成 一个单独的值, 这个值包含一个 XML 内容片断

3

XMLELEMENT

xmlelement(name name [, xmla ttributes(value [AS attname] [, ... ])] [, content, ...])

表达式 xmlelement 使用 给定名称、属性 和内容产生一个 XML 元素。

4

XMLFOR EST(value_expr)

xmlforest (content [AS name] [, ...])

表达 式 xmlforest 使用 给定名称和内容 产生一个元素的 XML 森林(序列)。

5

XMLPI

xmlpi(name target [, content])

表达 式 xmlpi 创建一个 XML 处 理指令。如果存 在内容,内容不 能包含字符序列

6

XMLROOT

xmlroot(xml, version text | no value [, standalone yes | no | no value])

表达式 xmlroot 修改一个 XML 值 的根结点的属性

7

XMLAGG

xmlagg(xml)

函 数 xmlagg 是一个 聚集函数。它将 聚集函数调用的 输入值串接起来

8

APPENDCHILDXML

appendchildxml(xml, XPath_string text, value_expr text[, nam espace_string])

将用 户提供的值作为 XPath 表达式指示 的节点的子节点 附加到目标 XML 上

9

UPDATEXML

updatexml(xml, XPath_string text, value_expr text[, nam espace_string])

将 XML 实例 、XPath 及新的 xml 更新值对作为参 数,并返回 XML 具 有更新值的实例

层次查询函数

1

SYS_CONNECT_BY_PATH (column,char)

SYS_CONNECT_BY_PATH (Expression,char)

返回从根元组到 当前元组的路径 ,这个路径是由 c har 字符分隔的在 各个元组上计算 的 Expression 的 值连接构成的。

你可能感兴趣的:(web,数据库,oracle,金仓)