我想知道不以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中相同而无法找到相同的解决方案。 任何帮助都会很明显。 感谢
答案 0 :(得分:1)
试试这个
SELECT INSTR(member_id, regexp_extract(member_id, '[^0]', 0)) from tablename
instr(string str,string substr): - 返回str中第一次出现substr的位置。如果任一参数为null,则返回null;如果在str中找不到substr,则返回0。请注意,这不是零基础。 str中的第一个字符具有索引1.
<强> 解释 强>
regexp_extract
会返回不是0
的第一个数字/字母。
instr
返回regexp_extract