1. 程式人生 > >HIVE按特殊字元擷取前後字串

HIVE按特殊字元擷取前後字串

以擷取括號前後字串為例:

1、擷取括號前的字串:select substr(a,1,instr(a,'(')-1)  注:此方法如果字串中沒有‘(’則會生成 null 值

如 :select substr('abc(123)',1,instr('abc(123)','(')-1) 會生成 abc,

但是select substr('abc',1,instr('abc','(')-1) 會生成 null,

2、用  substring_index函式擷取括號前字串,substring_index(a,'(',1) as b ,substring_index函式如果字串中沒有‘(’會保持原值不變,

如 :select substring_index

('abc(123)','(',1) 會生成 abc,

select substring_index('abc','(',1) 會生成 abc

3、用 substring_index函式擷取括號後字串,substring_index(a,'(',-1) as b ,substring_index函式如果字串中沒有‘(’會保持原值不變。