Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Order by (https://www.delphipraxis.net/167774-order.html)

mb1996 17. Apr 2012 18:22

Datenbank: Firebird • Version: 2,5 • Zugriff über: FIBPlus

Order by
 
Hallo Leute,

ich habe eine dringende Frage.
Problem:

SQL Code
Code:
SELECT
    ID,
    NAME,
    BEZEICHNUNG,
    LEITER,
    MINIMAL,
    MAXIMAL,
    KLASSEMIN,
    KLASSEMAX
FROM
    PROJEKTE
ORDER BY BEZEICHNUNG ASC;
Anzeigereinfolge:
A1
A10
A11
A12
A2
A3
A4
...



Wie bekomme ich das denn so sortiert???:?:
A1
A2
A3
A4
...
A10
A11
A12

DeddyH 17. Apr 2012 18:28

AW: Order by
 
Klappt das hier?
SQL-Code:
ORDER BY (LPAD(SUBSTRING(Bezeichnung FROM 2), 20, ' ')

mb1996 17. Apr 2012 18:30

AW: Order by
 
Nein :(
Fehler

DeddyH 17. Apr 2012 18:34

AW: Order by
 
Verrate uns aber bloß nicht die Fehlermeldung :?

mb1996 17. Apr 2012 18:38

AW: Order by
 
Die Hilft euch nicht :)
Aber hier: Error in: Select

p80286 17. Apr 2012 18:40

AW: Order by
 
Dann hätte ich gerne mal den ganzen select gesehen!
aber wahrscheinlich sortiert er nur das was auch im select erwähnt wurde.

Gruß
K-H

DeddyH 17. Apr 2012 18:43

AW: Order by
 
Dann lass mal die erste Klammer weg, die ist über.
SQL-Code:
ORDER BY LPAD(SUBSTRING(Bezeichnung FROM 2), 20, ' ')
Gerade ausprobiert, bei mir klappt das.

mb1996 17. Apr 2012 18:43

AW: Order by
 
Select
id,
name,
bezeichnung,
leiter,
minimal,
maximal,
klassemin,
klassemax
from
projekte
order by (lpad(substring(bezeichnung from 2), 20, ' ');

mb1996 17. Apr 2012 18:45

AW: Order by
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ein Bild

Neutral General 17. Apr 2012 18:46

AW: Order by
 
Wie ich das immer mache:

SQL-Code:
Order by char_length(trim(bezeichnung)), bezeichnung

DeddyH 17. Apr 2012 18:46

AW: Order by
 
Du hast wahrscheinlich #7 übersehen.

mb1996 17. Apr 2012 18:51

AW: Order by
 
Jetzt wird es so sortiert:
A1
A2
...
A9
B1
B2
...
E9
A10
A11
A12
...

DeddyH 17. Apr 2012 18:53

AW: Order by
 
Wenn man auch mit Infos geizt *grmpf*. Ist das immer ein Buchstabe gefolgt von einer Zahl?

mb1996 17. Apr 2012 18:58

AW: Order by
 
Genau

DeddyH 17. Apr 2012 18:59

AW: Order by
 
Und welche Sortierung genau möchtest Du nun haben?

mb1996 17. Apr 2012 19:02

AW: Order by
 
A1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
b1
b2
...

DeddyH 17. Apr 2012 19:04

AW: Order by
 
Neuer Versuch:
SQL-Code:
ORDER BY SUBSTRING(Bezeichnung FROM 1 FOR 1), LPAD(SUBSTRING(Bezeichnung FROM 2), 20, ' ')

mb1996 17. Apr 2012 19:09

AW: Order by
 
Jetzt wird es aber so sortiert:
A1
A10
A11
A12
A2
A3
...

Neutral General 17. Apr 2012 19:10

AW: Order by
 
Ne alternative Lösung von mir (ka ob die besser oder schlechter ist):

SQL-Code:
ORDER BY substring(bezeichnung from 1 for 1), cast(substring(bezeichnung from 2) as integer)

DeddyH 17. Apr 2012 19:13

AW: Order by
 
Hast Du den Code auch komplett kopiert? Bei mir funktioniert das nämlich einwandfrei, der Vorschlag von Neutral General sollte das übrigens auch, wenn ich nicht irre.

mb1996 17. Apr 2012 19:14

AW: Order by
 
Super.
Mit dem Befehl
Code:
ORDER BY substring(bezeichnung from 1 for 1), cast(substring(bezeichnung from 2) as integer)
läuft alles super :thumb:

DeddyH 17. Apr 2012 19:16

AW: Order by
 
Solange die Daten immer exakt diesem Muster entsprechen. Aber du kannst ja im Fehlerfall wieder einen Thread eröffnen. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.

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