Der Ansatz von Dejan Vu scheint mir auch am sinnvollsten und kann notfalls auch so aufgeblasen werden, dass große Lücken wieder auf eine Zeile eingedampft werden.
Aus der Anforderung ist mir allerdings nicht klar, was "am Ende" der Liste geschehen soll, hier ist ja auch eine "Lücke" bis 512.
Davon abhängig müsste man sich überlegen, wie man "AlleNummern " aus dem Beispiel
SQL befüllt bzw handhabt.