hive中字符串查找函数 instr 和 locate

instr( )

字符串查找函数: instr

语法: instr(string str, string substr) — hive语法

instr( string str, string substr [, bigint position [, bingint occurrence ] ] ) — impala语法

返回值: int

说明: 返回字符串 substr 在 str 中 首次出现的位置 ,找不到返回0 。

instr(sourceString , destString , start , appearPosition)

instr(‘源字符串’ , ‘目标字符串’ , ‘开始位置’ , ‘第几次出现’)

sourceString代表源字符串;

destString 代表要从源字符串中查找的子串;

① start代表查找的开始位置,这个参数可选的,默认为1;

② appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的,默认为1

③ 如果start的值为负数(最右侧下标为-1),则代表从右往左进行查找,但是位置数据仍然从左向右计算。

④ 返回值为:查找到的字符串的位置。如果没有查找到,返回0。

举例:

select instr("abcde",'b') , instr('abcdf','df') from test;
> 2   4

select instr('abcd','a',1,1) , instr('abcd','c',1,1) , instr('abcd','e',1,1) from test ;
> 1   3   0
select
 instr('abcd','c',1,1)
,instr('abcdctc','c',1,2)
,instr('abcdctc','c',1,3)
,instr('abcdctc','c',-1,3)
,instr('abcdctc','c',-1,2)
,instr('abcdctc','c',-2,3)
from test;
>
3  5  7  3  5  0

locate( )

字符串查找函数: locate

语法: locate(string substr, string str[, int pos])

返回值: int

说明: 返回字符串 substr 在 str 中从 pos 后查找 , 首次出现的位置,找不到返回0 。

举例:

select locate('uzi','Rnguzi') , locate('uzi','RngUzi') from test;
>
4   0

select locate('a','abcd') , locate('a','abcda',2) , locate('b','abcd') , locate('f','abcd') , locate('20','222002') from test;
>
1   5   2   0   3

可用于模糊匹配 join 时

select
  a.*,b.*
from
(select * from tb1 ) as a
join
(select * from tb2 ) as b on 1= 1
where locate(a.city_name,b.adress)>0 --过滤出能关联上的

Original: https://blog.csdn.net/index_test/article/details/126682062
Author: 奔跑者-辉
Title: hive中字符串查找函数 instr 和 locate

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817103/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球