hive常用语句
CONCAT_WS:1能根据指定的字符分隔array 或者能根据指定的字符拼接 多个字段 (数据需要是string类型)
CONCAT_WS("&",["fad","peng"]) as names =>输出结果 fad&peng (concat with separator)
CONCAT_WS('_',id,name) : id_name =>1_jinpeng
select concat('hena','-','zhengzhou','-','jinshui'); --查询结果 henan-zhengzhou-jinshui
select concat_ws('-','hena','zhengzhou','jinshui'); --查询结果 henan-zhengzhou-jinshui
COALESCE(EXPRESS1,EXPRESS2,EXPRESS3,...) 当遇到第一个不为null的值时即返回
coalesce(123,23,-1) => 123 , coalesce(null,null,11,23) => 11
DATE_SUB(Date,days) as 7daysAgo: 表示将日期向前调整days DATE_SUB('2017-10-15 23:00:00',4) => 2017-10-11 23:00:00
split('192.168.0.1','.') =>结果为空(因为.为特殊字符,要转义) split('192.168.0.1','\.') =》["192","168","0","1"]
regexp_replace(string A, string B, string C) 将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数
SUM(CASE WHEN content_type=1 THEN 1 ELSE 0 END) AS feature_film_vv
select parse_url('http://www.iqiyi.com/login/123433','HOST'); --查询结果 www.iqiyi.com
select parse_url('http://www.baidu.com/login/123433','PATH'); --查询结果 /login/123433
select parse_url('http://www.baidu.com/login/123433','PROTOCOL'); --查询结果 http
select unix_timestamp(); --查询时间戳
select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss'); --查询时间戳,并格式化
select repeat('ab',3); --查询结果:ababab
select lpad('ab3',6,'j'); --如果第一个参数长度不够6,则向左(右 rpad)补j直到长度够 6 --结果 jjjab3
select lpad('ab33333',6,'j'); --如果第一个参数长度够6,则不再向左(右 rpad)补j --结果 ab33333
select trim('jin peng tao '); --去掉左右空格
ltrim(string A) --左去空格
rtrim(string A)--右去空格
select to_date('2021-10-16 09:55:54'); -- 将时间戳转换成日期类型字符串 2021-10-16
datediff(string enddate, string startdate) 返回int 的两个日期差 select datediff('2021-10-16', '2021-10-10'); --两个日期相减
date_add(string startdate, int days) 日期加减
date_format(date/timestamp/string ts, string fmt) 按照格式返回字符串 select date_format('2021-10-16 09:55:54', 'yyyy-MM-dd'); 2021-10-16
last_day(string date) 返回 当前时间的月末日期 select last_day('2021-10-16 09:55:54'); 2021-10-31
select if (length('we')=3,'haha','dk'); --查询结果 dk
nvl(T value, T default_value) 如果T is null ,返回默认值
select split('a-c','-'); --查询结果 ["a","c"] 如果是特殊字段,需要转义
select split('a-c','-')[1]; --查询结果 "c"