SQL Sortierung mehrstelliger Zahlen

kekskruemel

Angesehenes Mitglied
Hallo Leute,

ich brauche mal wieder eure kleine Hilfe.

Ich sortiere eine Tabelle dynamisch. Je nach Auswahl der Pfeile an der Spalte wird an die SQL noch eine Sortieranweisung angehängt.

Dies funktioniert auch. Jedoch sortiert er eine Spalte mit Zahlen leider immer anhand der ersten Ziffer. Daher kommt also eine 10 vor der 2. etc.

Wieso ist dies so und wie kann man das beheben?

Danke euch!
 
QUOTE (kekskruemel @ Mo 3.11.2008, 20:51)Jedoch sortiert er eine Spalte mit Zahlen leider immer anhand der ersten Ziffer. Daher kommt also eine 10 vor der 2. etc.

Wieso ist dies so und wie kann man das beheben?

Dann ist das in Wirklichkeit eine Textspalte, bei der

12345

als fünf Zeichen (analog zu 'ABCDE') gespeichert wird und nicht als Integer mit 4 Byte

12345 = 2^13 + 2^12 + 2^5 + 2^4 + 2^3 + 2^0 = 00000000000000000011000000111001

als Bitmuster.


Sprich: Die Spalte zu einer Ganzzahl / Integer-Spalte konvertieren.

Allerdings überprüfen, ob das nicht dann beim Eingeben crasht, wenn da Text eingegeben wird. Das muß dann natürlich im Vorfeld korrekt abgefangen werden.



PS: Wie habe ich die obie Binärdarstellung einigermaßen schnell rausgefunden? Ganz einfach - per JavaScript:


CODE <script>var i = 12345; document.write(i.toString(2));</script>


i.toString(2) stellt die Zahl zur Basis 2 dar, das ist nichts anderes als die Bitvariante, wie sie von Computern genutzt wird. i.toString() ist dasselbe wie i.toString(10).
 
QUOTE (kekskruemel @ Mo 3.11.2008, 21:25)Mein Datentyp in der Datenbank ist
decimal(5,2)

Verstehe ich nicht.

Auf dem Microsoft Sql-Server würde das damit sofort gehen.


QUOTE Select A.Preis
From Benzinpreise As A
Order By A.Preis


würde beim Datentyp Decimal(5,2) korrekt sortieren.


Wird der Sql-Code irgendwie fehlerhaft zusammengebaut, so daß da diese Zahlen in Strings konvertiert werden? Das Ergebnis sieht genau danach aus.
 
bei Tankcheck funktioniert alles. Das Problem habe ich bei einer anderen Seite und dort auch nun behoben. Ich habe einfach noch einmal die Datenbank erstellt und nun geht es... eigenartig!

Vielen Dank aber für deine Hilfe!
 
Dann hat jemand den Datentyp auf float geändert. Sonst hätte es immer funktioniert. Ist mir kürzlich passiert und hab den Wald vor lauter Bäumen nicht mehr gesehen...
Das ist was mir persönlich immer auf die Nerven geht! Warum kann die Maschine floats nicht anständig sortieren?!?! (rethorische Frage!)

@Jürgen, enttäuschend, ich dachte Du hättest das im Kopf gerechnet...
wink.gif
 
Zurück
Oben