Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Spalte mit Nummern "richtig" sortieren (https://www.delphipraxis.net/15725-spalte-mit-nummern-richtig-sortieren.html)

Gambit 3. Feb 2004 11:42


Spalte mit Nummern "richtig" sortieren
 
Moin!

Ich habe in einer Tabelle eine Spalte mit Zahlen beginnend bei 1 ohne vorangestellte Nullen. Wenn ich die Spalte jetzt per SQL-Befehl sortieren will, fängt er mit 10 an, nach der 19 kommt die 1 dann die 20 usw. Wie bekomme ichs hin, dass bei 1 beginnend sortiert wird, ohne Nullen voranzustellen?

Gruß

Gambit

r_kerber 3. Feb 2004 11:54

Re: Spalte mit Nummern "richtig" sortieren
 
Hallo Gambit,

dann nimm eine Spalte vom Typ Integer und nicht Character!

Gambit 3. Feb 2004 12:12

Re: Spalte mit Nummern "richtig" sortieren
 
Jepp, gute Idee! Ich hatte nur vergessen, dass nicht nur Zahlen, sondern auch Buchstaben in der Spalte vorkommen also z.B 4 E oder 22 K.

Mein Fehler, sorry...

Gambit

Micha 3. Feb 2004 13:13

Re: Spalte mit Nummern "richtig" sortieren
 
Ich hab genau das gleiche Problem.

Der Typ meiner Spalte in der Datenbank ist aber schon auf char.

Oder kann ich das evtl. beim DropDown-Ereignis auch noch "richtig" sortieren lassen.

Delphi-Quellcode:
Combo.sorted := true
bringt eben das von Gambit unerwünschte Ergebnis.

Robert_G 3. Feb 2004 13:39

Re: Spalte mit Nummern "richtig" sortieren
 
Beim folgenden Code wird dir Spalte F1 beim sortieren nach vorne mit Nullen aufgefüllt ( lPad(F1,5,'0') - Die 5 durch die wirkliche Länge ersetzen)
1 -> 00001
11 -> 00011
...

SQL-Code:
SELECT F1, F2, ...
FROM  IrgendeineTabelle
WHERE ...
ORDER BY lPad(F1,5,'0')
Damit umgeht man das Problem, dass 11 vor 2 sortiert wird.

lPad ist eine Oracle-Funktion und könnte in eurer DB anders heißen & andere Parameter verlangen.
Eine DB, die was taugt wird schon ein Gegenstück zu der Funktion bieten.

Gambit 3. Feb 2004 13:56

Re: Spalte mit Nummern "richtig" sortieren
 
jau, so sollte es gehen. Ich benutze MySQL, mal sehen, was es da gibt...

Gruß

Gambit


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz