SQL系列目录(文末有礼物相送):
SQL技巧初级系列①—建表/更新表/删除表
SQL技巧初级系列②—聚合和排序(group by,having,order by)
SQL技巧初级系列③——数据拼接(集合运算union和列连接join)
SQL技巧中级系列②——日期函数的使用
SQL技巧高级系列①——窗口分析函数的使用
SQL技巧高级系列②——聚合函数和CASE WHEN的使用
Hive Sql 性能优化——看这一篇就够啦!
1. 字符串长度函数:length
语法: length(string A)
返回值: int
说明:返回字符串A的长度
hive> select length('abcedfg') from lxw_dual, 结果为7
hive> select userid where length(deviceid) <>0, 筛选出统计到设备ID的用户ID
2. 字符串反转函数:reverse
语法: reverse(string A)
返回值: string
说明:返回字符串A的反转结果
hive> select reverse(abcedfg’) from lxw_dual;
gfdecba
3. 字符串连接函数
①:concat
语法: concat(string A, string B…)
返回值: string
说明:返回输入字符串连接后的结果,支持随意个输入字符串
hive> select concat(‘abc’,'def’,'gh’) from lxw_dual;
abcdefgh
②:concat_ws
语法: concat_ws(string SEP, string A, string B…)
返回值: string
说明:返回输入字符串连接后的结果。SEP表示各个字符串间的分隔符
hive> select concat_ws(',','abc','def','gh') from lxw_dual;
abc,def,gh
4. 字符串截取函数:substr,substring
语法: substr(string A, int start,int len),substring(string A, int start,int len)
返回值: string
说明:返回字符串A从start位置开始,长度为len的字符串, 第2个数字是截取的长度,忽略则默认取至结尾,负数则是从右边开始数,-1代表取最后一个位置,-2代表右边第2个位置
hive> select substr('abcde',3) from lxw_dual;
cde
hive> select substring('abcde',3,2) from lxw_dual;
cd
hive> selectsubstr('abcde',-1) from lxw_dual;
e
5、字符串大小写函数:capitalize,title,upper,lower
语法: upper(string A) ucase(string A)
返回值: string
说明:返回字符串的首字母大写,字符串每个单词首字母大写,全部大写,全部小写
hive> select capitalize('good blue sky') from a
Good blue sky
hive> select title('good blue sky') from a
Good Blue Sky
hive> select upper('good blue sky') from a
GOOD BLUE SKY
hive> select lower('good blue sky') from a
good blue sky
6. 去空格函数:trim,ltrim,rtrim
语法: trim(string A)
返回值: string
说明:去除字符串两边的,左边的,右边的空格
hive> select trim(' abc ') from lxw_dual;
abc
7、 正则表达式替换函数:regexp_replace
语法: regexp_replace(1,2,3,4,5,6)
返回值: string
说明:1为要替换的字符串,2是要替换的内容,3是替换后的内容,4是从哪里开始,5是替换多少次,6是是否区分大小写
hive> select regexp_replace('foobar', 'o', '',2,1) from lxw_dual;
fobar
8. 正则表达式解析函数:regexp_extract
语法: regexp_extract(string subject, string pattern, int index)
返回值: string
说明:将字符串subject依照pattern 正则表达式的规则拆分。返回index指定的字符。
hive> select regexp_extract('foothebar', 'foo(.*?)(bar)', 1) fromlxw_dual;
the
hive> select regexp_extract('foothebar', 'foo(.*?)(bar)', 2) from lxw_dual;
bar
9. 正则表达式截取:regexp_substr
语法: regexp_substr(str, pattern, position, occurrence, modifier)
str:待分割的字符串或者字段值;
pattern:匹配的正则表达式,pattern = ‘[^___]+’,下划线的内容就是需要分割的字符;
position:匹配的起始位置(默认为1);
occurrence:取第几个匹配的字符串(默认为1);
modifier :是否区分大小写,‘i’不区分大小写,‘c’区分大小写(默认为‘c’)
hive> select regexp_substr('hello world!', '[^o]+', 1, 1, 'i') from a
hell
10、切割字符串函数: split
语法: split(string str, stringpat)
返回值: array
说明: 依照pat字符串切割str,会返回切割后的字符串数组
举例:
hive> select split('abtcdtef','t') from lxw_dual;
["ab","cd","ef"]
11. 集合查找函数:find_in_set
语法: find_in_set(string str, string strList)
返回值: int
说明: 返回str在strlist第一次出现的位置。strlist是用逗号切割的字符串。假设没有找该str字符,则返回0
hive> select find_in_set('ab','ef,ab,de') from lxw_dual;
2
hive> select find_in_set('at','ef,ab,de') from lxw_dual;
0
本人互联网数据分析师,目前已出Excel,SQL,Pandas,Matplotlib,Seaborn,机器学习,统计学,个性推荐,关联算法,工作总结系列。
微信搜索并关注 " 数据小斑马" 公众号,回复“sql”就可以免费领取下方sql必知必会、sql基础教程等9本sql入门到精通9本书籍

本文是SQL技巧中级系列的第一篇,详细介绍了包括length、reverse、concat、concat_ws、substr、capitalize等在内的字符串函数用法,涵盖了字符串长度、反转、连接、截取、大小写转换、去空格及正则表达式操作。通过实例讲解,帮助读者深入理解并掌握这些函数在实际数据分析中的应用。
1049

被折叠的 条评论
为什么被折叠?



