HIVE函数的基本使用

时间:2024-05-07 16:48:44

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();结合使用