最近学习hive,发现它的内置函数好多,想要一下子记住 是很难的,所以本人对做了一些总结分类和总结 --数学函数---------------------------------------------------------------------------- round----四舍五入 select round(53.123,2),round(53.123,1),round(53.123,0),round(53.123,-1),round(53.123,-2) ceil---向上取整 select ceil(53.123) floor---向下取整 select floor(53.123) --字符函数----------------------------------------------------------------------------------- lower---转小写 select lower('ASDF') upper---转大写 select upper('asdf') lenfth---统计字符串个数 select length('asdf') concat---字符串拼接函数 select concat('hello ','word',' nice to neet you','!') substr---字符串截取函数 select substr('hello word nice to meet you!',6) select substr('hello word nice to meet you!',6,5) trim---去掉字符串前后空格函数 select trim(' asdf ') lpad---左填充函数 select lpad('hello',12,'*') rpad---右填充函数 select rpad('hello',12,'*') --收集函数---------------------------------------------------------------------------- size--收集看k,v键值对个数 select size(map(1,'tom',2,'bob',3,'jack')) --转换函数-------------------------------------------------------------------------------- cast select cast(1 as double) select cast('2015-12-12' as date) --日期函数----------------------------------------------------------------------------- to_date select to_date('2015-12-12 12:12:12') select to_date('2015-12-12') year month day select year('2015-12-12 12:12:12'),month('2015-12-12 12:12:12'),day('2015-12-12 12:12:12') weekofyear--转换为该日期为该年第几周 select weekofyear('2015-12-12 12:12:12') datediff--返回日期相差天数 select datediff('2015-12-12 12:12:12','2015-11-19 12:13:12') select datediff('2015-11-19 12:13:12','2015-12-12 12:12:12') date_add--日期加上天数 select date_add('2015-11-19 12:13:12',12) date_sub--日期减去天数 select date_sub('2015-11-19 12:13:12',12) --条件函数 coalesce --从左到右第一个不是空的值 select coalesce(null,null,2) case--when--条件语句 select ename,eid,ejob , case ename when 'monky' then esal+10 when 'lucy' then esal+20 else esal+5 end from emp --ename,ejob,eid,esal为建立表emp的字段 --聚合函数------------------------------------------------------ count--统计个数 select count(*) from emp sum--统计和 select sum(esal) from emp min--最小值 select min(esal) from emp max--最大值 select max(esal)from emp avg--平均值 select avg(esal)from emp --表生成函数---------------------------------------- explode---给出kv返回一个表 select explode(map(1,'tom',2,'jack'))