Laden...

SQL Befehl zum sortieren

Erstellt von FerryG vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.173 Views
F
FerryG Themenstarter:in
86 Beiträge seit 2005
vor 17 Jahren
SQL Befehl zum sortieren

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

3.825 Beiträge seit 2006
vor 17 Jahren

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

  1. 1
    11.10
  2. 3
  3. 7
  4. 9

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

F
FerryG Themenstarter:in
86 Beiträge seit 2005
vor 17 Jahren

Dann muss ich ja alle Kapitelnr in der Datenbank ändern oder? Das ist viel Arbeit geht das nicht bequemer?

B
1.529 Beiträge seit 2006
vor 17 Jahren

Trenne Kapitel von Unterkapitel.
Bei der Eingabe einfach am Punkt aufteilen und in zwei verschiedene Spalten. Dann kannst du numerisch nach den Spalten sortieren.

E
124 Beiträge seit 2006
vor 17 Jahren

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

1.274 Beiträge seit 2005
vor 17 Jahren

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