SQL-Reference, Stichwort "Order By Clause".
Das selbe gilt übrigens auch bei "Group by", wobei hier der Unterschied besteht, dass der Ausdruck identisch im Select stehen muss.
Deshalb ist es gedanklich häufig einfacher einen
"select * from (select f1, f2, Ausdruck as f3....) Hugo order by f1, f2, f3"
zu kodieren auch wenn es im Endeffekt egal ist.

Je nach Dialekt und AS/400-Version ist ein Ausdruck in Order By nur erlaubt, wenn dieser auch im Select steht.
Ein Order-Feld, das nicht im Select steht ist erst seit V5R3 erlaubt und andere Dialekte erlauben es ggf. gar nicht.

Ich weiß auch nicht, wie SQL nun reagiert wenn ich folgendes mache (keine Lust zum Probieren):
select f1, f2, f3 from myfile
order by f1, 2, 10

Mit "2" wird das 2. Feld der Select-Liste benannt, mit "10" müsste nun ein Ausdruck angenommen werden da Feld 10 nicht existiert.