2016-04-22 11 views
1

0で始まらないデータの位置を知りたい。 次の例のように、最初の行の最初の数字は00で、3の位置はゼロ以外の値3位ハイブで文字列から0の位置を調べる

member_id   values 

008507743   3  
017521344   2  
040324598   2 

SQLコードから起動します -

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

SQLで上記のことと私はハイブと同じのための解決策を見つけることができないで同じことをしたいです。 何か助けがあれば分かるでしょう。 str内のsubstrが最初に出現する位置を返します - : おかげ

答えて

1

この

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

documentation

INSTR(文字列str、文字列SUBSTR)から試してみてください。いずれかの引数がNULLの場合はnullを返し、strでsubstrが見つからなかった場合は0を返します。これはゼロベースではないことに注意してください。 str内の最初の文字は、インデックス1

説明

regexp_extract0ではありません最初の数字/アルファベットを返しました。

instrはそれが働いているregexp_extract

+0

おかげから見つかった要素のインデックスを返します。.. –

+0

@GurpreetSingh受け入れると見@GurpreetSinghその後、 – rock321987

+0

を答えをupvoteしてください([どのように受け入れ、upvoteする]のhttp://メタ。 stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – rock321987

関連する問題