分隔符第二次出现后的配置单元regexp\u提取

vu8f3i0k  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(475)

我们有一个配置单元表列,它的字符串由“;”分隔我们需要在第二次出现“;”之后提取字符串

+-----------------+
| col1            |
+-----------------+
| a;b;c;d         |
| e;f; ;h         |
| i;j;k;l         |  
+-----------------+

Required output:

+-----------+
| col1      |
+-----------+
| c         |
| <null>    |
| k         |  
+-----------+

选择regexp\u extract

7cwmlq89

7cwmlq891#

把绳子分开 ; 它将返回一个值数组,从中可以得到索引2处的元素。

select split(str,';')[2]
from tbl
js4nwp54

js4nwp542#

如果要将空字符串和仅限空格的字符串转换为null(如示例中所示),则此宏非常有用:

create temporary macro empty_to_null(s string) case when trim(s)!='' then s end;
select empty_to_null(split(col1,'\\;')[2]);

相关问题