Hallo und guten Tag,
na klar, sind noch Strings. Hatte ich vergessen.
Zu beachten wäre da noch, wenn die Nummern führende Nullen haben können. Die müsste man wegtrimmen, wenn man Strings vergleicht. Beim Typecast verschwinden die ja von selbst.
Typecast kann ich vergessen, es gibt auch Artikelnummern mit Buchstaben drinne.
Dann könntest Du für die Schmuddelpraxis den Weg anders herum gehen und den hinteren Anteil einfach vorne mit neutralen Elementen (bezüglich der Sortierung, also z.B. Leerzeichen oder 0) auffüllen, bis eine (maximale) Gesamtlänge von X Zeichen errreicht ist.
Das ist aber Schmuddelei, weil die Sortierung dann immer noch über eine temporäre (Index-)Tabelle geht, die das DBMS bei jedem Select erstellen muss.
Der richtige Weg wäre mMn die passende Atomisierung der Daten.
Der zweitbeste Weg wären zwei Trigger für Insert und Update, die eine berechtnete Spalte füllen, auf der dann ein Index liegt. Dann kann das DBMS beim ORDER BY diesen Index benutzen, der aber nicht bei jedem Select neu aufgebaut werden muss.
Grüße
TS