可用函数.docx
《可用函数.docx》由会员分享,可在线阅读,更多相关《可用函数.docx(45页珍藏版)》请在冰豆网上搜索。
![可用函数.docx](https://file1.bdocx.com/fileroot1/2022-12/11/5170a13a-b49b-4b3c-8617-608c2bc998c2/5170a13a-b49b-4b3c-8617-608c2bc998c21.gif)
可用函数
可用函数
数学运算函数
abs
命令格式
doubleabs(doublenumber)
bigintabs(bigintnumber)
用途返回绝对值,若输入为NULL,返回NULL
参数说明
●number:
double或bigint类型,输入为bigint时返回bigint,输入为double时返回double类型。
若输入为string类型会隐式转换到double类型后参与运算,其它类型抛异常。
Note
当输入bigint类型的值超过bigint的最大表示范围时,会返回double类型,这种情况下可能会损失精度。
示例
●abs(-1)返回1
●abs(-9223372036854775808)返回9223372036854776000.0,因为9223372036854775808超出了bigint能表达的最大值范围。
acos
命令格式
doubleacos(doublenumber)
用途反余弦函数。
参数说明
●number:
double类型,-1≤number≤1。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型,值域在0~π之间。
若number为NULL,返回NULL。
示例
●acos
(1)返回0.0
●acos(-1)返回3.141592653589793
asin
命令格式
doubleasin(doublenumber)
用途反正弦函数。
参数说明
●number:
double类型,-1≤number≤1。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型,值域在-π/2~π/2之间。
若number为NULL,返回NULL。
示例
●asin
(1)返回1.5707963267948966
●asin(-1)返回-1.5707963267948966
atan
命令格式:
doubleatan(doublenumber)
用途反正切函数。
参数说明
number:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型,值域在-π/2~π/2之间。
若number为NULL,返回NULL。
示例
●atan
(1)返回0.7853981633974483
●atan(-1)返回-0.7853981633974483
ceil
命令格式:
bigintceil(doublevalue)
用途返回不小于输入值的最小整数
参数说明
value:
double类型,接受bigint,double的隐式转换。
返回值bigint类型。
任一输入为NULL,返回NULL。
示例
●ceil(1.1)返回2
●ceil(-1.1)返回-1
conv
命令格式
stringconv(stringinput,bigintfrom_base,bigintto_base)
用途进制转换函数
参数说明
∙input:
以string表示的要转换的整数值,接受bigint,double的隐式转换。
∙from_base,to_base,以十进制表示的进制的值,可接受的的值为2,8,10,16。
接受string,double的隐式转换。
返回值string类型。
任一输入为NULL,返回NULL。
转换过程以64位精度工作,溢出时报异常。
输入如果是负值,即以’-‘开头,报异常。
Note
如果输入的是小数,则会转为整数值后进行进制转换,小数部分会被舍弃。
示例
●conv(‘1100’,2,10)返回‘12’
●conv(‘1100’,2,16)返回‘c’
cos
命令格式
doublecos(doublenumber)
用途余弦函数,输入为弧度值。
参数说明
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型。
若number为NULL,返回NULL。
示例
●cos(3.1415926/2)=2.6794896585028633e-8
●cos(3.1415926)=0.9999999999999986
cosh
命令格式
doublecosh(doublenumber)
用途双曲余弦函数。
参数说明
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型。
若number为NULL,返回NULL。
cot
命令格式
doublecot(doublenumber)
用途余切函数,输入为弧度值。
参数说明
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型。
若number为NULL,返回NULL。
exp
命令格式
doubleexp(doublenumber)
用途指数函数。
参数说明
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型。
若number为NULL,返回NULL。
rand
命令格式
doublerand(seed)
用途返回double类型的随机数,返回值区间是的0~1.
参数说明
seed:
bigint类型,随机数种子,决定随机数序列的起始值
round
命令格式
round(number,[decimal_places])
用途四舍五入到指定小数点位置。
参数说明
number:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
decimal_place:
bigint类型常量,四舍五入计算到小数点后的位置,其他类型参数会引发异常.如果省略表示四舍五入到个位数。
返回值返回四舍五入的结果,double类型。
若number或decimal_places为NULL,返回NULL。
Note
decimal_places可以是负数。
负数会从小数点往左开始round,并且不保留小数部分;如果decimal_places超过了整数部分长度,返回0.
示例
∙round(125.315)返回125
∙round(125.315,0)返回125
∙round(125.315,1)返回125.3
∙round(125.315,2)返回125.32
∙round(125.315,3)返回125.315
∙round(-125.315,2)返回-125.32
∙round(null)返回null
floor
命令格式
bigintfloor(doublenumber)
用途向下取整,返回比number小的整数值。
参数说明
number:
double类型,若输入为string类型或bigint型会隐式转换到double类型后参与运算,其他类型抛异常
返回值返回向下取整的结果,bigint类型。
若number为NULL,返回NULL。
示例
∙floor(1.2)=1
∙floor(1.9)=1
∙floor(0.1)=0
∙floor(-1.2)=-2
∙floor(-0.1)=-1
∙floor(0.0)=0
∙floor(-0.0)=0
sin
命令格式
doublesin(doublenumber)
用途正弦函数,输入为弧度值。
参数说明
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型。
若number为NULL,返回NULL。
sinh
命令格式
doublesinh(doublenumber)
用途双曲正弦函数。
参数说明
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值double类型。
若number为NULL,返回NULL。
sqrt
命令格式
doublesqrt(doublenumber)
用途计算平方根。
参数说明
number:
double类型,必须大于0。
小于0时引发异常。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值平方根,double类型。
若number为NULL,返回NULL。
tan
命令格式
doubletan(doublenumber)
用途正切函数,输入为弧度值。
参数说明
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值:
double类型。
若number为NULL,返回NULL。
tanh
命令格式
doubletanh(doublenumber)
用途:
双曲正切函数。
参数说明:
number:
double类型。
若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值:
double类型。
若number为NULL,返回NULL。
trunc
命令格式
trunc(number[,decimal_places])
用途:
将输入值截取到指定小数点位置。
参数说明:
∙number:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
∙decimal_places:
bigint类型常量,要截取到的小数点位置,其他类型参数会隐式转为bigint,省略此参数时默认到截取到个位数。
返回值:
返回值类型为double。
若number或decimal_places为NULL,返回NULL。
Note
∙truncate掉的部分补0。
∙decimal_places可以是负数,负数会从小数点往左开始truncate,并且不保留小数部分;如果decimal_places超过了整数部分长度,返回0.
示例
∙trunc(125.815)返回125
∙trunc(125.815,0)返回125
∙trunc(125.815,1)返回125.8
∙trunc(125.815,2)返回125.81
∙trunc(125.815,3)返回125.815
∙trunc(-125.815,2)返回-125.81
∙trunc(125.815,-1)返回120
∙trunc(125.815,-2)返回100
∙trunc(125.815,-3)返回0
ln
命令格式
doubleln(doublenumber)
用途:
返回number的自然对数。
参数说明
number:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
若number为NULL返回NULL,若number为负数或零,则抛异常。
log
命令格式
doublelog(doublebase,doublex)
用途:
返回以base为底的x的对数。
参数说明
base:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
x:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
返回值:
double类型的对数值,若base和x中存在NULL,则返回NULL;若base和x中某一个值为负数或0,会引发异常;若base为1(会引发一个除零行为)也会引发异常。
pow
命令格式
doublepow(doublex,doubley)
用途:
返回x的y次方,即x^y。
参数说明:
●X:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
●Y:
double类型,若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型抛异常。
若x或y为NULL,则返回NULL
字符串处理函数
char_matchcount
命令格式
char_matchcount(str1,str2)
用途:
用于计算str1中的每个字符在str2中出现的次数总和,任一输入为NULL返回NULL。
参数说明
∙str1,str2:
string类型,必须为有效的UTF-8字符串,如果对比中发现有无效字符则函数返回负值。
返回值:
bigint
chr
命令格式
chr(ascii)
用途:
将给定ASCII转换成字符,参数范围是0~255,超过此范围会引发异常。
输入值为NULL返回NULL。
参数说明:
∙ascii:
bigint类型ascii值,若输入为string类型或double类型会隐式转换到bigint类型后参与运算,其它类型抛异常。
返回值:
string
concat
命令格式
concat(stringA,stringB...)
用途:
返回值是将参数中的所有字符串连接在一起的结果。
参数说明:
∙A,B等为string类型,若输入为bigint,double,datetime类型会隐式转换为string后参与运算,其它类型报异常。
返回值:
string
Note
如果没有参数或者某个参数为NULL,结果均返回NULL
concat(),concat(null,‘a’),concat(‘a’,null,‘b’)返回值都是NULL
is_encoding
命令格式
is_encoding(str,from_encoding,to_encoding)
用途:
判断输入字符串是否从指定的一个字符集转为另一个字符集,可用于判断输入是否为’乱码’,通常的用法是将from_encoding设为’utf-8’,to_encoding设为’gbk’
参数说明:
∙str:
string类型,输入为NULL返回NULL。
空字符串则可以被认为属于任何字符集。
∙from_encoding,to_encoding:
string类型,源及目标字符集。
输入为NULL返回NULL。
返回值:
boolean类型,如果str能够成功转换,则返回true,否则返回false
ip2region
命令格式
ip2region(ip,region_level)
用途:
根据ip地址取相应的城市地址.
参数说明:
∙ip:
string类型,其它类型报异常,ip格式如192.168.0.1,每段的值在0-255之间,非法的ip返回NULL。
∙region_level:
string类型,指定返回地址的级别*country–国家*province–省*city–市*district–县/区*school–学校,如果是教育网的IP,则返回学校
返回值:
string类型,地区名称。
当给定IP找不到相应记录时,返回NULL。
如果有符合条件的多条记录,只返回一条。
Note
此函数依赖于字典文件ip_region_dict,字典内容由PE维护。
当前字典中是用”-“表示内容不存在,因此当字典中的值为”-“时,会返回NULL.
instr
命令格式
instr(string1,string2[,start_position[,nth_appearance]])
用途:
计算一个子串在字符串中的位置.
参数说明:
∙string1:
string类型,搜索的字符串,若输入为bigint,double,datetime类型会隐式转换为string后参与运算,其它类型报异常。
∙string2:
string类型,要搜索的子串,若输入为bigint,double,datetime类型会隐式转换为string后参与运算,其它类型报异常。
∙start_position:
bigint类型,其它类型会抛异常,表示从string1的第几个字符开始搜索,默认起始位置是第一个字符位置1。
开始位置如果小于等于0会引发异常。
∙nth_appearance:
bigint类型,大于0,表示子串在字符串中的第n次匹配的位置,如果nth_appearance为其它类型或小于等于0会抛异常。
返回值:
string2在string1中的出现的位置。
Note
如果在string1中未找到string2,返回0.
任一输入参数为NULL返回NULL
如果string2为空串时总是能匹配成功,因此instr(‘abc’,’’)会返回1
示例
INSTR(‘Techonthenet’,‘e’)返回2
INSTR(‘Techonthenet’,‘e’,1,1)返回2.
INSTR(‘Techonthenet’,‘e’,1,2)返回11.
INSTR(‘Techonthenet’,‘e’,1,3)返回14.
keyvalue
命令格式
keyvalue(stringsrcStr,stringsplit1,stringsplit2,stringkey)
keyvalue(stringsrcStr,stringkey)//split1=“;”,split2=“:
”
用途:
将srcStr按split1分成key-value对,按split2将key-value对分开,返回key所对应的value
参数说明
∙srcStr输入待拆分的字符串
∙key指定返回第几个字符串
∙split1,split2拆分的字符串,只有两个参数时,默认split1=‘;’,split2=‘:
’
返回值:
string
∙Split1或split2为NULL时,返回NULL.
∙srcStr,key为NULL或者没有匹配的key时,返回NULL
∙如果有多个key-value匹配,返回第一个匹配上的key对应的value
示例
keyvalue(”;decreaseStore:
1;xcard:
1;isB2C:
1;tf:
21910;cart:
1;shipping:
2;pf:
0;market:
shoes;instPayAmount:
0;”,”;”,”:
”,”tf”)返回“21910”
Note
如果从console输入时字符串中有分号,应该用;转义。
该函数行为是实现成与taobaohive里的UDF一致,如果在taobaohive里的UDF行为有改动,请联系产品经理。
length
命令格式:
length(string)
用途:
返回一个字符串的长度。
返回值为整型。
若string是NULL返回NULL。
如果string非UTF-8编码格式,返回-1。
参数说明:
∙string:
string类型,若输入为bigint,double,datetime类型会隐式转换为string后参与运算,其它类型报异常。
返回值bigint,字符串的长度
lengthb
命令格式
lengthb(string)
用途:
返回一个字符串的以字节为单位的长度。
返回值为整型。
若string是NULL返回NULL。
参数说明:
∙string:
string类型,若输入为bigint,double,datetime类型会隐式转换为string后参与运算,其它类型报异常。
md5
命令格式
md5(value)
用途:
计算输入字符串的md5值
参数说明:
∙value:
string类型,如果输入类型是bigint,double,datetime会隐式转换成string类型参与运算,其它类型报异常。
输入为NULL,返回NULL。
返回值:
输入字符串的md5值
regexp_extract
命令格式
regexp_extract(source,pattern[,occurrence])
用途:
将字符串source按照pattern正则表达式的规则拆分,返回第occurrence个group指字的字符。
参数说明:
∙source:
string类型,待搜索的字符串。
∙pattern:
string类型常量,pattern为空串时抛异常,pattern中如果没有指定group,抛异常。
∙occurrence:
bigint类型常量,必须>=0,其它类型或小于0时抛异常,不指定时默认为1,表示返回第一个group。
若occurrence=0,返回满足整个pattern的子串。
返回值:
string类型,任一输入为NULL返回NULL。
示例
selectregexp_extract(‘foothebar’,’foo(.*?
)(bar)’,1)fromdual;the
selectregexp_extract(‘foothebar’,’foo(.*?
)(bar)’,2)fromdual;bar
selectregexp_extract(‘foothebar’,’foo(.*?
)(bar)’,0)fromdual;foothebar
regexp_instr
命令格式:
regexp_instr(source,pattern[,start_position[,nth_occurrence[,return_option]])
用途:
返回字符串source从start_position开始,和pattern第n次(nth_occurrence)匹配的子串的起始/结束位置。
任一输入参数为NULL时返回NULL。
参数说明
∙source:
string类型,待搜索的字符串。
∙pattern:
string类型常量,pattern为空串时抛异常。
∙start_position:
bigint类型常量,搜索的开始位置。
不指定时默认值为1,其它类型或小于等于0的值会抛异常。
∙nth_occurrence:
bigint类型常量,不指定时默认值为1,表示搜索第一次出现的位置。
小于等于0或者其它类型抛异常。
∙return_option:
bigint类型常量,值为0或1,其它类型或不允许的值会抛异常。
0表示返回匹配的开始位置,1表示返回匹配的结束位置。
返回值:
视return_option指定的类型返回