1

我想知道不以 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 中使用相同的内容,但无法找到相同的解决方案。任何帮助都是不言而喻的。谢谢

4

1 回答 1

2

尝试这个

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

文档

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

解释

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

instr返回找到的元素的索引regexp_extract

于 2016-04-22T14:25:31.187 回答