Hallo Leute,
ich hab da ein kleines Problem...meine Daten in der Datenbank sehen folgendermaßen aus:
/*Das sind Kapitelnummern -->KapNr
11.1
11.3
11.9
11.7
11.10
...diese möchte ich sortieren mit dem SQL-Befehl:
SELECT KapNr FROMKapitel ORDER BY KapNr;
...das Sortierergebnis sieht dann folgendermaßen aus:
11.1
11.10
11.3
11.7
11.9
...die Reihenfolgen ist falsch, wie kann ich das beheben, so das immer nach dem "." Symbol die Ziffern als eine ganze Zahl gesehen werden?
Danke euch,
FG
Hallo Ferry,
füge ein Leerzeichen nach dem Komma ein, wenn die Stellen hinter dem Komma einstellig ist :
11.1
11.10
11.3
11.7
11.9
wird zu
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Dann muss ich ja alle Kapitelnr in der Datenbank ändern oder? Das ist viel Arbeit geht das nicht bequemer?
Trenne Kapitel von Unterkapitel.
Bei der Eingabe einfach am Punkt aufteilen und in zwei verschiedene Spalten. Dann kannst du numerisch nach den Spalten sortieren.
Hallo FerryG
Also ich kann Dir nur dringend empfehlen, den Rat von Borg anzunehmen, damit Deine Tabelle zumindest in der ersten Normalform ist.
Wenn Du aber unbedingt eine Lösung willst, kannst Du es mit ein paar schmutzigen Casts lösen:
select KapNr, cast(cast(KapNr as real) as int) AS Kap,
cast(replace(KapNr, cast(cast(cast(KapNr as real) as int) as varchar(10)) + '.' ,'') as int) as UKap
from Kapitel
order by Kap, UKap
Grüße
Elric
Ich würde dir auch empfehlen, die Trennung durchzuführen, das suchen ist dann wesentlich einfacher und Perfomanter, da du wenn du das Kapitel brauchst einfach
Kapitel = 1 AND Absatz >=1 and Absatz <=5
finden kannst
"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein