2017-08-17 1 views
2

J'ai plusieurs ID pour chaque ligne et je veux extraire le nombre qui vient après un certain texte dans chaque rangée. Ci-dessous pourraient être mes valeurs dans la colonne id.Extraction de texte après certains caractères dans une chaîne dans la ruche

test123; tghy876; 8906; TT-1234

best123; tghy8656; 88706; TT-5678

Je veux que la sortie retourne uniquement les nombres qui viennent après tt- donc ma sortie devrait être comme ci-dessous.

quel code ruche doit être utilisé pour y parvenir?

Répondre

0

était capable de le faire en utilisant plusieurs split.

fendu (split (id, "tt -") [1], ";") [0]

2

Utilisation regexp - retour premier groupe d'un nombre de chiffres après « ; TT- »

select regexp_extract(src_string,'\; TT-(\\d+)',1); 

Démo:

hive> select regexp_extract('best123\; tghy8656\; 88706\; TT-5678','\; TT-(\\d+)',1); 
OK 
5678 
Time taken: 0.056 seconds, Fetched: 1 row(s) 
hive>