数学函数:
round(四舍五入):
ceil(向上取整):
floor(向下取整):
上面的结果变为45
字符函数:
lower(转小写):
upper(转大写):
length(字符串长度,字符数):
concat(字符串拼接):
substr(求子串):
substr(a,b):从字符串a中,第b位开始取,取右边所有的字符
substr(a,b,c):从字符串a中,第b为开始取,取c个字符
注意:空格算占用一个字符的空间
trim(去前后空格):
lpad(左填充):
rpad(右填充):
收集函数:
size:返回map集合的个数
格式:size(map(<key,value>,<key,value>))
转换函数:
cast:转换数据类型
日期函数:
to_date:从一个字符串中取出为日期的部分
year、month、day:从一个日期中取出相应的年、月、日
weekofyear:返回输入日期在该年中是第几个星期
datediff:两个日期相减,返回相差天数
date_add:在一个日期基础上增加天数
date_sub:在一个日期基础上减去天数
条件函数:
coalesce:从左到右返回第一个不为null的值
case...when...:条件表达式
语法格式:case A when B then C [when D then E]* [else F] end
解释:对于A来说,如果判断为B则返回C,如果判断为D则返回E(此处判断条件可为多个),如果以上都不是则返回F。注意,最后还有还有一个end结束符。
运行结果:
聚合函数:
count:返回行数
sum:组内某列求和
min:组内某列最小值
max:组内某列最大值
avg:组内某列平均值
以工资sal为例:
select count(*),sum(sal),max(sal),min(sal),avg(sal) from emp;
表生成函数:
explode:把map集合中每个键值对或数组中的每个元素都单独生成一行的形式