1.select concat(‘abc’,‘cd’,‘fff’)
对二进制字节码或字符串按次序进行拼接
2.select instr(“abcdef”,‘b’)
查找字符串str中子字符串substr出现的位置
3.select length(‘abcdef’)
返回字符串的长度
4.select locate(‘cd’,‘abcdabcd’,4)
查找字符串str中的pos位置后字符串substr第一次出现的位置
5.select upper(‘adcdef’)
将字符串的所有字母转换成小写/大写字母
6.select regexp_replace(‘1999/5.6’,’[/|\.]’,’-’)
7.select regexp_replace(‘1999-5-6 13:00:55.234’,’\.[0-9]+’,’’)
按正则表达式将字符串中符合条件的部分替换成所指定的字符串
8.select split(‘1999-5-6 13:24:56.234’,’\.’)[0]
按照正则表达式来分割字符串
9.select substring(‘1999-5-6 13:24:56.234’,1,8)
对字符串,从1位置开始截取长度为8的字符串并返回
10.select trim(’ 1999-5-6 13:24:56.234 ‘)
将字符串前后出现的空格去掉
11.select str_to_map(‘1999-5-6 13:24:56.234’,’ ‘)
将字符串str按照指定分隔符转换成Map
12.select encode(‘你好’,‘gbk’)
13.select encode(‘你好’,‘utf-8’)
用指定字符集将字符串编码成二进制值
14.select reverse(‘abcde’)
字符串反转
15.select trim(’ abc ‘)
将字符串前后出现的空格去掉
16.select ltrim(’ abc’)
将字符串前出现的空格去掉
17.select rtrim(‘abc ‘)
将字符串出后现的空格去掉
18.select regexp_extract(‘1999-5-6 13:24:56.001’,’([0-9]{4}-[0-9]{1,2}-[0-9]{1,2}) ([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})(\.[0-9]{2,3})’,1)
抽取字符串中符合正则表达式的第1个部分的子字符串,注意些预定义字符的使用,如第二个参数如果使用’.‘将被匹配到.,’\.‘才是匹配空格
19.select repeat(‘abc’,3)
重复输出3次字符串
20.select format_number(3.1415926,3)
将数值X转换成"#.###“格式字符串,并保留3位小数,如果3为0,将进行四舍五入且不保留小数
21.select format_number(124568.45654,3)
将数值X转换成”###,###.###"格式字符串,并保留3位小数,如果3为0,将进行四舍五入且不保留小数
22.select get_json_object(’{“name”:“zs”,“age”:“40”}’,’$.name’)
从指定路径上的JSON字符串抽取出JSON对象,并返回这个对象的JSON格式,如果输入的JSON是非法的将返回NULL,注意此路径上JSON字符串只能由数字 字母 下划线组成且不能有大写字母和特殊字符,且key不能由数字开头,这是由于Hive对列名的限制
23.select lpad(‘abcd’,10,‘0’)
从左边开始对字符串使用字符串填充,最终长度为止,如果字符串本身长度比它大的话,将去掉多余的部分
24.select rpad(‘abcd’,10,‘0’)
从右边开始对字符串使用字符串填充,最终长度为止,如果字符串本身长度比它大的话,将去掉多余的部分
25.select parse_url(‘http://www.taobao.com’,‘HOST’)
26.select parse_url(‘http://www.taobao.com?userid=1&v=2’,‘QUERY’)
27.select parse_url(‘http://www.taobao.com?userid=1&v=2’,‘PROTOCOL’) as info
返回从URL中抽取指定部分的内容,参数url是URL字符串,而参数partToExtract是要抽取的部分,这个参数包含(HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO,例如:parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1’, ‘HOST’) =‘facebook.com’,如果参数partToExtract值为QUERY则必须指定第三个参数key 如:parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1’, ‘QUERY’, ‘k1’) =‘v1’
28.select sentences(‘Hello there!How are you’)
字符串将被转换成单词数组
29.select initcap(‘hwo do you do’)
将字符串转换第一个字母大写其余字母的字符串
30.select round(2.1415926,3)
返回对值四舍五入并保留3位小数位的值
31.select floor(2.1415926)
向下取整,如:6.10->6 -3.4->-4
32.select ceil(2.1615926)
求其不小于小给定实数的最小整数
33.select rand(INT seed)
返回一个DOUBLE型随机数,seed是随机因子
34.select pow(10,2)
计算a的p次幂
35.select sqrt(10)
计算10的平方根
36.select pmod(10,3)
10对3取模
37.select cast(“123” as int)
将string转换成int类型
38.select from_unixtime(1250111000)
将时间的秒值转换成format格式
39.select from_unixtime(1250111000,‘yyyy-MM-dd’),unix_timestamp(‘1970-1-1 8:0:0’)
时间戳,毫秒数
40.select to_date(from_unixtime(unix_timestamp()))
返回时间字符串的日期部分
41.select datediff(current_date(),‘1999-5-6’)
计算开始时间到结束时间相差的天数
42.select date_add(current_date(),2)
从开始时间startdate加上days
43.select date_sub(current_date(),2)
从开始时间startdate减去days
44.select add_months(current_date(),6)
返回当前时间下再增加几个月的日期
45.select last_day(current_date())
返回这个月的最后一天的日期
46.select next_day(current_date(),‘TH’)
返回当前时间的下一个星期X所对应的日期
47.select trunc(current_date(),‘MM’)
返回时间的最开始年份
48.select trunc(current_date(),‘YY’)
返回时间的最开始月份
49.select months_between(current_date(),‘2020-12-31’)
返回当前时间与所输入的时间之间相差的月份
50.select date_format(current_date(),‘h’)
按指定格式返回时间date
51.select size(split(‘hello world how are you’,’ '))
按空格分割
52.select if(1>2,‘hello’,‘world’)
如果testCondition 为true就返回valueTrue,否则返回valueFalseOrNull
53.select nvl(null,10)
value为NULL返回default_value,否则返回value
54.select coalesce(null,null,null,10,null,20)
返回第一非null的值,如果全部都为NULL就返回NULL
搞了几个小时,终于搞好了,做了一些实例,如果有什么不对的地方请多多指教。