1、Greenplum常用函数Greenplum函数u函数分类u字符函数u日期函数u数学函数u聚合函数u通用函数u自定义函数u日期操作符uoracle内置函数*内置函数,用户定义函数。Greenplum字符函数1.Length()获取字符串长度,中文、英文、数字均按1个字符计算2.Lower()将字符串中所有字母转换成小写3.Upper()将字符串中所有字母转换成大写4.Trim()将字符串前、后空格去掉。类似的:Rtrim()去右空格、Ltrim()去左空格Greenplum字符函数 续5.Substr(str,pos,n)字符串截取函数,将str从pos的位置 开始截取n个字符6.Strpos
2、(str,str1)获取str中str1子串所在的起始位置7.Replace(str,str1,str2)将str中所有包括str1的子串替换成str2Greenplum日期/时间函数1.Current_date 取当前日期2.Current_time 取当前时间3.Current_timestamp 取当前时间戳,同样也可以用now()获取到。Greenplum日期/时间函数 续一4.Date()将参数转换成日期格式5.Extract(field from source)按field格式取出source中值,field常用取值有year,month,day,hour,minute,doy等G
3、reenplum日期/时间函数 续二6.To_date(str,format)将字符串按format指定的形式转换成日期类型7.To_timestamp(str,format)将字符串按format指定的形式转换成时间戳Greenplum数学函数1.abs(num)取绝对值2.round(num,pos)对num进行四舍五入,保留pos位小数 3.floor(num)对num作向下取整4.ceil(num)对num作向上取整,是ceiling()的别名函数5.sign(num)取num的正负Greenplum数学函数 续6.mod(num,n)求模函数 7.power(num,n)取num的n
4、次方值8.sqrt(num)取num的平均根 9.random()获取一个0-1以内的随机数Greenplum聚合函数1.sum()求和函数2.count()count(*)所有记录数,count(expression)输入列非空记录数3.max()集合取最大值4.min()集合取最小值5.avg()集合取平均数测试数据表Greenplum通用函数1.coalesce(field,val)当field值为null时取val作默认值,要求field与val数据类型相同2.length()取长度函数,参数既可以是字符串也可以是整型等其他类型Greenplum通用函数 续3.row_number()
5、over()排序,无重复序号4.rank()排序,有并列时,下个排名不连续5.dense_rank()排序,有并列时,下个排名连续Greenplum自定义函数下面是一个没有参数也没有返回值的函数:CREATE FUNCTION public.clean_customer()RETURNS void AS DELETE FROM testsch.customer WHERE state=NA;LANGUAGE SQL;在select语句中调用函数:SELECT public.clean_customer();clean_customer-(1 row)CREATE OR REPLACE FUNC
6、TION public.to_number(number1 varchar)RETURNS decimal AS$BEGINreturn cast(number1 as decimal);END;$LANGUAGE plpgsql immutable;-兼容性重载CREATE OR REPLACE FUNCTION public.to_number(number1 INTEGER)RETURNS decimal AS$BEGINreturn cast(number1 as decimal);END;$LANGUAGE plpgsql immutable;Greenplum自定义函数 续下面是一
7、个返回值类型为decimal的用户定义函数及其重载方法:Greenplum函数编写规则u包括一组SQL语句,中间使用分号分隔 可以有查询语句 可以有DML语句,如Insert,Update,Delete 可以没有Rollback,Savepoint,Commit等命令u返回最后一个查询语句的结果集 如果返回类型不为空则最后必须是一个select语句u占用独立的事务Greenplum函数分类uSQL语言函数u过程语言函数(如:PL/pgSQL or PL/Tcl)u内置函数*uC/Java语言函数Greenplum的Function根据编写语言的不同可以分为以下几类:Greenplum日期/时间
8、操作符操作操作符符例子例子结果结果+date 2001-09-28+integer 7date 2001-10-05+date 2001-09-28+interval 1 hourtimestamp 2001-09-28 01:00+date 2001-09-28+time 03:00timestamp 2001-09-28 03:00+timestamp 2001-09-28 01:00+interval 23 hourstimestamp 2001-09-29 00:00+time 01:00+interval 3 hourstime 04:00-date 2001-10-01-date 2001-09-28integer 3-date 2001-10-01-integer 7date 2001-09-24-date 2001-09-28-interval 1 hourtimestamp 2001-09-27 23:00-time 05:00-time 03:00interval 02:00-time 05:00-interval 2 hourstime 03:00-timestamp 2001-09-28 23:00-interval 23 hourstimestamp 2001-09-28 00:00ORACLE内置函数ORACLE内置函数