Jetzt habe ich die Aufgabe verstanden.
ID2 ist die Position zur ID1, im Prinzip wie eine Stückliste.
Hier ist ein Join aufzubauen:

select case when a.id2 = 0 then a.id1 else b.id2 end as id1, a.id2, a.wrkcde
from myfile a
left join myfile b on b.id2 = a.id1
order by id1, a.wrkcde