Hive内置函数

一、介绍

在SQL中提供了很多的内置函数,或者叫内嵌函数,包括聚合函数、数学函数,字符串函数、转
换函数,日期函数,条件函数,表生成函数等等。

二、数学函数

  • 指定精度取整函数:round
    • 语法: round(double a, int d)

    • 说明:返回指定精度d的double类型

      SELECT round(3.1415926, 3);
      

三、字符串函数

  • 字符串截取函数:substr(substring)
    • 两个参数
      • 语法:substr(string A, int start),substring(string A, int start)
      • 返回值: string
      • 说明:返回字符串A从start位置到结尾的字符串
      select substr('abcdef', 2);
      
    • 三个参数
      • 语法: substr(string A, int start, int len),substring(string A, intstart, int len)
      • 返回值: string
      • 说明:返回字符串A从start位置开始, 长度为len的字符串。
      select substr('abcdef', 2, 2);
      
  • 字符串拼接函数
    • concat
      • 语法: concat(string A, string B…)
      • 返回值: string
      • 说明:返回输入字符串连接后的结果,支持任意个输入字符串
      select concat('abc', 'def');
      
    • concat_ws
      • 语法: concat_ws(string SEP, string A, string B…)
      • 返回值: string
      • 说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符
      select concat_ws('-', 'abc', 'def');
      

四、日期函数

  • year/quarter/month/day/hour

    • 语法:
      • year(string date)
      • month(string date)
      • day(string date)
      • hour(string date)
    • 说明:返回日期中的年/月/日/小时。
    select year("2012-12-08 13:35:35");
    select month("2012-12-08 13:35:35");
    select day("2012-12-08 13:35:35");
    select hour("2012-12-08 13:35:35");
    
  • 日期格式化函数:date_format

    • date_format(string time, string format)
    • 说明:返回指定格式的日期
    select date_format('2021-01-23', 'yyyy/MM/dd');
    

五、判断函数

  • If函数

    • if和case差不多,都是处理单个列的查询结果
    • 语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)
    • 返回值: T
    • 说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull。
    • 示例:if(条件表达式,结果1,结果2)相当于java中的三目运算符,只是if后面的表达式类型可以不一样。
    select if(1>2, 1, 2);
    
  • CASE WHEN THEN

    • 语法:CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END
    • 说明:如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e
    • 如:CASE WHEN 5>0 THEN 5 WHEN 4>0 THEN 4 ELSE 0 END 将返回5;CASE WHEN 5<0
      THEN 5 WHEN 4<0 THEN 4 ELSE 0 END 将返回0。
    select case when 2>3 then '2>3' when 2<1 then '2<1' else '0' end;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值