在hive中找出0字符串的位置

时间:2016-04-22 12:28:50

标签: regex hive position patindex

我想知道不以0开头的数据的位置。 如下例所示,在第一行中,第一个数字是00,它返回3个位置,因为非零值从3个位置开始

member_id          values

008507743          3     
017521344          2    
040324598          2

SQL代码: -

select  member_id,patindex('%[^0]%',MEMBER_ID)as Index_value  from tablename

上面的事情在sql和我只是想在hive中相同而无法找到相同的解决方案。 任何帮助都会很明显。 感谢

1 个答案:

答案 0 :(得分:1)

试试这个

SELECT INSTR(member_id, regexp_extract(member_id, '[^0]', 0)) from tablename

来自documentation

  

instr(string str,string substr): - 返回str中第一次出现substr的位置。如果任一参数为null,则返回null;如果在str中找不到substr,则返回0。请注意,这不是零基础。 str中的第一个字符具有索引1.

<强> 解释

regexp_extract会返回不是0的第一个数字/字母。

instr返回regexp_extract

中找到的元素的索引