Buona sera a tutti

Immaginate un menu ad albero e la stringa qui sotto.
Ho una stringa del genere A-AA-AAA-AB-ABA-B-BB che messa a menu ad albero viene fuori cosi:

A
AA
AAA
AB
ABA
B
BB

I dati mi arrivano come sopra ho descritto e devo crearne una query di interrogazione...

Vorrei splittare la stringa ad ogni "-" e farmi venire fuori una query del genere:

Select * from tabella where X = A and (Y = AA OR Y = AB) and (Z = AAA OR Z=ABA) OR X = B and (Y = BB)


Non so se mi avete capito ma con attenzione capirete.
GRAZIE A CHI MI PUO AIUTARE!STO INCASINATISSIMA!!!