HIVE函数的基本使用
1.查看所有支持的函数 共289个
        1)SHOW FUNCTIONS 查看所有支持的函数 共289个
         2)SHOW FUNCTIONS LIKE "**"  模糊查询函数名
         3)DESC FUNCTION + 函数名 可以查看函数的具体使用方法
show functions; 
 

show functions like "*con*"; 
 

查看函数的具体使用方法
desc function + 函数名; 
 

2.if函数
IF(判断条件,如果为TRUE则返回该参数中内容,如果为FLASE则返回当前参数位置的内容)
select t1.ename,if(t1.sal>1000,"高收入","低收入") as if_sal
from learn2.emp t1; 
 

3.CASE WHEN 函数:
CASE WHEN 。。。END
          CASE WHEN 判断条件1 THEN 如果为TURE返回THEN1后的值, 
                WHEN 判断条件2 THEN 如果为TURE返回THEN2后的值, 
                ELSE 以上都不满足,则返回ELSE后的值
           END
     -- 需求:将收入分成三等分
SELECT
T1.ENAME
,CASE WHEN T1.SAL > 3000 THEN "高收入"
 WHEN T1.SAL <= 3000 AND T1.SAL > 1000 THEN "中收入"
 ELSE "低收入" END case_when_sal
FROM learn2.emp T1 
 

   
注意:如果需求中只有一个判断,那么使用IF函数更为方便,否则则使用 CASE WHEN
4.日期函数:
select from_unixtime(1323308943,'yyyyMMdd');
 
 

 select from_unixtime(unix_timestamp());
 
 

 select from_unixtime(unix_timestamp(),"yyyy-MM-dd");
 

 select unix_timestamp(from_unixtime(unix_timestamp()));
 
 

获取当前系统的日期
select current_date;
 
 

日期的加减
select date_add(current_date,-2);
 

select date_add(current_date,+2);
 

5.字符串函数
select length("12345"); 
 
select reverse("12345"); 

3)字符串拼接
 select concat("A","B");
SELECT CONCAT(T1.EMPNO,"/",T1.ENAME) FROM learn2.emp T1; 
 
 
SELECT CONCAT_WS("/",CAST(T1.EMPNO AS STRING),T1.ENAME) FROM learn2.emp T1; 
这个查询语句使用了 CONCAT_WS 函数和 CAST 函数来将 EMPNO 列和 ENAME 列连接起来,并在它们之间插入斜杠 (/)。

注:CONCAT_WS需要提供STRING类型数据,如果不满足可以通过CAST将数据类型进行转换
      
4)字符串截取函数:
             
SELECT SUBSTRING(CURRENT_DATE,1,7); 
        
5)切分函数:
             
select split('abtcdtef','t'); 返回的数据类型为复杂数据类型Array 

6)正则表达式替换函数
select regexp_replace('foobar','oo|ar',''); 
             
7)正则表达式解析函数
select regexp_extract('foothebar','foo(.*?)(bar)',0);
select regexp_extract('foothebar','foo(.*?)(bar)',1);
select regexp_extract('foothebar','foo(.*?)(bar)',2); 
 


8)空格函数
一般与select concat();结合使用

















