SQL-Sortieranweisung für Zahlen und Texte

Hallo
hat soweit alles geklappt, das sortieren funktioniert auch nach Spalten in Tabellen und so langsam verstehe ich das auch alles.

Nun habe ich nur noch ein kleines Problem.
Meine Spalten in der Datenbank habe ich als Textfelder deklariert, daher bekomme ich bei der Sortierung von Zahlen natürlich erst alle 1er werte also 1, 10, 1234 dann alle 2er, 3er usw.

Meine Felder sollen aber als Text erhalten bleiben, damit bleibe ich flexibler und kann alles da reinschreiben lassen.

Gibt es eine Möglichkeit auch die textfelder nach verschiedenen Sortierkriterien abzufragen also nach Zahlen sortieren und dies in der SQL-Zeile ORDER By mit reinzuschreiben.

Mir fällt ansonsten nur ein, eine zusätzliche Spalte als Zahlen zu deklarieren und den Zahlenwert der Spalte jedes Datensatzes da einzutragen vor dem Sortieren, danach kann ich dann nach der Spalte sortieren lassen.
Dauerd wahrscheinlich ein Sekündchen oder zwei länger, aber besser als nix.

Vielleicht weis jmd was einfacheres.

Mfg Werner

Einfacher wäre

SELECT * FROM TABELLE ORDER BY CAST(TEXTFIELD AS UNSIGNED)

oder wenn die String-Zahlen auch negativ sind SIGNED.

Gruß,
Rudy

Hallo Werner,

Vielleicht weis jmd was einfacheres.

ja, führende Nullen. :wink:

Gruß, Rainer

Danke werds mal ausprobieren
Hallo Danke für den Tip
werds gleich mal testen.

Mfg Werner

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

noch ne kurze Frage
Hallo
nachdem ich ja jetzt bald voll den Durchblick beim Sortieren habe, noch ne Verständnisfrage.

Es ist doch so, das diese SQL-Sortierung nur funktioniert, wenn man die Daten auch in einer Datenbank in Verbindung mit einem Listenfeld sortiert. Ohne geht das scheinbar nicht.

Das heisst doch, wenn ich die Daten irgendwo mal sortieren müsste ohne Listenfeld, muß ich mir ein nicht sichtbares Listenfeld einbinden???
So geht es dann auch.

Mfg Werner

Hallo Werner,

Es ist doch so, das diese SQL-Sortierung nur funktioniert,
wenn man die Daten auch in einer Datenbank in Verbindung mit
einem Listenfeld sortiert. Ohne geht das scheinbar nicht.

Nein, da verstehst Du scheinbar etwas völlig falsch.
Datenbank und Listenfeld haben nichts miteinander zu tun.
Öffne die Datenbank doch einfach mal mit Access statt mit VB.

Das heisst doch, wenn ich die Daten irgendwo mal sortieren
müsste ohne Listenfeld,

Ja, das machst Du mit dem Select. Da kannst Du die Sortierung angeben.

muß ich mir ein nicht sichtbares
Listenfeld einbinden???

Nein, mußt Du nicht. Deine Liste in VB verändert die DB nicht.

Kannst Du denn mit MS-Access umgehen? Weißt Du, wie man Schlüssel festlegt, was ein Primärschlüssel ist, wie Du Abfragen aufbaust, verwendest, Wie Du Relationen zwischen verschiedenen Tabellen definierst, was es für Relationen gibt, welche Wirkung die haben …?
Wäre nützlich, wenn Du die Datenbank verstehst, mit der Du arbeitest.

Gruß, Rainer

Hi
Hallo
gute Fragen, was soll ich darauf antworten.
Sagen wir mal, einstellen könnte ich alles irgenwie schon, ich verstehe nur nicht immer das Resultat dessen, was da passiert bzw. wie es sich in VB auswirkt.

Im Moment ist meine Datenbank und die Tabelle ohne irgendwelche Einstellungen. Wenn ich in VB mein DBGrid sortiere, sieht die Datenbank danach aber auch so aus, also wird sie geändert!!!

Logischerweise gehe ich dann davon aus, das ich zum sortieren der DB eine DBListe brauche. Vielleicht kein normales Listenfeld, da habe ich mich etwas falsch ausgedrückt.

Mfg Werner

Hallo Werner,

Im Moment ist meine Datenbank und die Tabelle ohne
irgendwelche Einstellungen. Wenn ich in VB mein DBGrid
sortiere, sieht die Datenbank danach aber auch so aus, also
wird sie geändert!!!

von Deiner Datenbank habe ich mir bisher nur die Tabelle mit den Punkten angesehen. Die hat einen Primärschlüssel. Rufst Du diese Tabelle mit Access auf, sind die Daten immer nach diesem einen, einzigen Schlüssel sortiert. Weitere schlüssel hast Du nicht angelegt, so weit ich mich recht erinnere.

Wenn du mit SQL-Befehlen neue Abfragen erstellst, wirkt sich das auf die Tabelle nicht aus, nur die Abfrage ist so sortiert, wie Du das programmierst. Dein Primärschlüssel wird dadurch nicht verändert und deshalb wird auch die Sortierung in der Tabelle nicht geändert.
Wie die neue Abfrage sortiert ist, legst Du mit ‚Order by‘ fest.

Gruß, Rainer