基本数据类型差异
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.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.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 的 值连接构成的。 |