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のことと、ハイブで同じことをしたいだけで、同じ解決策を見つけることができません。どんな助けもかなりのものです。ありがとう

4

1 に答える 1

2

これを試して

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

于 2016-04-22T14:25:31.187 に答える