- 四舍五入
select round(3.1415926);
select round(3.1415926, 3);
- 向下取整
select floor(3.1415926);
- 向上取整
select ceil(3.1415926);
- 0-1范围内的随机数
select rand();
- rand(int seed),指定种子将会返回固定的随机数
select rand(5);
- 幂运算函数 pow(2,3) 2的三次幂
select pow(2, 3);
- 绝对值运算
select abs(-3.141592657);
- 字符串长度函数
select length("cccddd");
- 字符串翻转函数
select reverse("abcdefg");
- 字符串连接函数
select concat("hello", "world");
- 带分隔符的字符串连接函数
select concat_ws(",", "aaa", "bbb", "ccc");
- 字符串截取函数:substrsubstring
select substr("abcdefg", 2);
select substr("abcdefg", 2, 3);
select substr("abcdefg", -2);
select substr("abcdefg", -5, 3);
- 字符串大小写转换
select lower("ABCD"); select lcase("ABCd");
select ucase("abcd"); select upper("abCde");
- 去除字符串两边空格
select trim(" hahah a ");
- 去除字符串左边空格
select ltrim(" hahah a ");
- 去除字符串右边空格
select rtrim(" hahah a ");
- 正则表达式替换函数:regexp_replace
select regexp_replace("foobar", "oo|ar", "dd");
- url解析函数 返回URL中指定的部分。
- partToExtract的有效值为 : HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.
select parse_url("https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000",'HOST');
select parse_url("https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000", "PATH");
select parse_url("https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000", "QUERY", "tn");
- 字符串分割
select split("ab。cd。ef。d", "。");
select split("ab.cd.ef.d", "\.");
- 获取时间戳
select unix_timestamp();
- unix时间戳转日期
select from_unixtime(1637305723, 'yyyy-MM-dd HH:mm:ss');
- 日期转时间戳 默认格式:yyyy-MM-dd HH:mm:ss
select unix_timestamp("2021-11-19 15:08:43");
- 指定格式日期转时间戳
select unix_timestamp("2021 11 19 15:08:43", "yyyy MM dd HH:mm:ss");
- 时间格式化函数
select date_format("2021-1-9 13:1:2", "yyyy-MM-dd HH:mm:ss");
- 时间转日期
select to_date("2021-11-20 21:46:20");
- 获取日期中的年、月、日、时、分、秒
select year("2021-11-20 21:46:20"); select month("2021-11-20 21:46:20"); select day("2021-11-20 21:46:20"); select hour("2021-11-20 21:46:20"); select minute("2021-11-20 21:46:20"); select second("2021-11-20 21:46:20");
- 获取日期在本年内的第几周
select weekofyear("2021-11-20 21:46:20");
- 日期比较函数 datediff(a,b) 返回a-b的天数
select datediff("2021-11-20 21:46:20", "2021-12-20 21:46:20");
- 日期加减
select date_add('2021-11-20', 10);
select date_sub('2021-11-20', 10);
- 条件函数 判断结果为true时返回第二个参数,条件为false或者为null返回第三个参数
select if(1=2, 100, 200);
select if(null, 100, 200);
- case when
select case when 1=2 then "hello" when 2=2 then "world" else "emmm" end ;
- cast强转函数
select cast(12.35 as int);
select cast("2021-11-20" as date);
```sql -- collect_set将某字段的值进行去重汇总 select deptno, concat_ws("|", collect_set(ename)) from emp group by deptno; -- collect_list将某字段的值进行汇总,不去重 select deptno, concat_ws("|", collect_list(ename)) from emp group by deptno; ```7.表生成函数
- explode 爆炸函数
初始数据
select explode(names) from emp2;
- LATERAL VIEW侧视图
select deptno,name,names from emp2 lateral view explode(names) tmp_tb as name;
- reflect函数可以支持在sql中调用java中的自带函数
select reflect("java.lang.Math", "max", col1, col2) from test_udf;
飞机票–>hive开窗函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)