Funzione di ricerca nell’ALVEARE

Voglio controllare se un campo contiene una stringa.

Voglio una funzione che sarebbe simile a questa:

FIND("string_to_find",field_to_search)

I miei dati assomiglia a questo:

field_to_search
---------------
"no match in this string"
"record 2 has no matches"
"ahh finally xxxstring_to_findxxx is here"

Sto cercando una funzione che identifica la stringa specificata è contenuto e in quale posizione la stringa inizia.

return
------
-1
-1
15
  • “Cercare e yee, troverà” – che su di googling hive string functions site:apache.org
InformationsquelleAutor Chris | 2015-08-10



2 Replies
  1. 3

    Costruito in locate funzione quasi esattamente di che cosa avete bisogno, tranne che per il vostro ingresso, tornare

    return
    ------
    0
    0
    16
    

    In quanto gli indici da 1. Quindi tutto quello che dovete fare è:

    Select locate("string_to_find","ahh finally xxxstring_to_findxxx is here") -1; --returns 15
    Select locate("string_to_find","foo") -1; --returns -1
    
  2. 0

    Questo obiettivo può essere raggiunto utilizzando instr e se dell’alveare.

    select if(instr(line,"xxxstring_to_findxxx")==0,-1,instr(line,"xxxstring_to_findxxx")) as position from find_tbl;  
    

    riga dove è il tuo nome di colonna

Lascia un commento