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