Delphi-PRAXiS
Seite 2 von 3     12 3      

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

Sir Rufo 29. Jul 2014 15:19

AW: Order by - aufsteigende Zahlenreihe ...
 
Zitat:

Zitat von baumina (Beitrag 1266942)
Zitat:

Zitat von Sir Rufo (Beitrag 1266941)
So ist das eben, wenn man die falsche Struktur für die Daten wählt, dann fällt einem das bei der Abfrage auf die Füße ;)

Ich hab noch ein viel schlimmeres Problem ... Kunde mag folgendes "richtig" sortiert haben:
Code:
HP100
HP100Q
HP200
HP1000
HP1000Q
HP2000
:shock:

Also wenn ich das richtig sehe, dann hast du da einen Präfix, eine Zahl und einen Suffix. Immer so aufgebaut, oder kann das auch anders sein?

DeddyH 29. Jul 2014 15:19

AW: Order by - aufsteigende Zahlenreihe ...
 
Und nur mit dem LPAD wie eingangs vorgeschlagen klappt auch nicht?

jobo 29. Jul 2014 15:21

AW: Order by - aufsteigende Zahlenreihe ...
 
Zitat:

Zitat von baumina (Beitrag 1266942)
Ich hab noch ein viel schlimmeres Problem ... Kunde mag folgendes "richtig" sortiert haben:
Code:
HP100
HP100Q
HP200
HP1000
HP1000Q
HP2000
:shock:

Da gibt's sicher online Dienste aus China. ;)

Aber ernst: Wenn es nach noch mehr Durcheinander riecht, würde ich vlt ein RegexpReplace durchführen und nach dem Ergebnis sortieren.
Kommt natürlich auch drauf an, was an Funktionen verfügbar ist.

baumina 29. Jul 2014 15:24

AW: Order by - aufsteigende Zahlenreihe ...
 
Zitat:

Zitat von Sir Rufo (Beitrag 1266943)
Zitat:

Zitat von baumina (Beitrag 1266942)
Zitat:

Zitat von Sir Rufo (Beitrag 1266941)
So ist das eben, wenn man die falsche Struktur für die Daten wählt, dann fällt einem das bei der Abfrage auf die Füße ;)

Ich hab noch ein viel schlimmeres Problem ... Kunde mag folgendes "richtig" sortiert haben:
Code:
HP100
HP100Q
HP200
HP1000
HP1000Q
HP2000
:shock:

Also wenn ich das richtig sehe, dann hast du da einen Präfix, eine Zahl und einen Suffix. Immer so aufgebaut, oder kann das auch anders sein?

Kann auch so aussehen:

Code:
A1-150-100X
A1-150-200
A1-150-1000X
A1-150-2000X
A1-160-100
A1-160-100X
A1-160-200
A1-160-1000

erich.wanker 29. Jul 2014 15:25

AW: Order by - aufsteigende Zahlenreihe ...
 
-> Und nur mit dem LPAD ?

klapp leider nicht ....

baumina 29. Jul 2014 15:27

AW: Order by - aufsteigende Zahlenreihe ...
 
Zitat:

Zitat von jobo (Beitrag 1266945)

Da gibt's sicher online Dienste aus China. ;)

Aber ernst: Wenn es nach noch mehr Durcheinander riecht, würde ich vlt ein RegexpReplace durchführen und nach dem Ergebnis sortieren.
Kommt natürlich auch drauf an, was an Funktionen verfügbar ist.

Das blöde daran ist, dass keiner weiß wie die morgen ihre Daten eingeben und dann wieder sortiert haben wollen. DENEN leuchtet es natürlich immer ein wie es sein soll, aber meinem Programm halt nicht :(

Sir Rufo 29. Jul 2014 15:34

AW: Order by - aufsteigende Zahlenreihe ...
 
Zitat:

Zitat von erich.wanker (Beitrag 1266947)
-> Und nur mit dem LPAD ?

klapp leider nicht ....

Du musst dir 2 Spalten aufbauen (Text und Zahlwert) und dann darüber die entsprechende Sortierung machen.
Hier ein online Beispiel (mit MySQL)
SQL-Code:
-- Erst Zahlen, dann Text
SELECT
  COALESCE( TextValue, NumberValue ) `Value`
FROM
  Table1
ORDER BY
  CASE WHEN NOT ISNULL(NumberValue) THEN 0 ELSE 1 END,
  NumberValue,
  TextValue;
-- Erst Text, dann Zahlen
SELECT
  COALESCE( TextValue, NumberValue ) `Value`
FROM
  Table1
ORDER BY
  CASE WHEN NOT ISNULL(NumberValue) THEN 1 ELSE 0 END,
  NumberValue,
  TextValue;
und besser wäre es die Tabelle gleich so aufzubauen ;)

Sir Rufo 29. Jul 2014 15:39

AW: Order by - aufsteigende Zahlenreihe ...
 
Zitat:

Zitat von baumina (Beitrag 1266946)
Zitat:

Zitat von Sir Rufo (Beitrag 1266943)
Zitat:

Zitat von baumina (Beitrag 1266942)
Zitat:

Zitat von Sir Rufo (Beitrag 1266941)
So ist das eben, wenn man die falsche Struktur für die Daten wählt, dann fällt einem das bei der Abfrage auf die Füße ;)

Ich hab noch ein viel schlimmeres Problem ... Kunde mag folgendes "richtig" sortiert haben:
Code:
HP100
HP100Q
HP200
HP1000
HP1000Q
HP2000
:shock:

Also wenn ich das richtig sehe, dann hast du da einen Präfix, eine Zahl und einen Suffix. Immer so aufgebaut, oder kann das auch anders sein?

Kann auch so aussehen:

Code:
A1-150-100X
A1-150-200
A1-150-1000X
A1-150-2000X
A1-160-100
A1-160-100X
A1-160-200
A1-160-1000

Achtung, Echo:

Also wenn ich das richtig sehe, dann hast du da einen Präfix, eine Zahl und einen Suffix. Immer so aufgebaut, oder kann das auch anders sein?
PräfixZahlSuffix
HP100 
HP100Q
HP200 
HP1000 
HP1000Q
HP2000 
A1-150-100X
A1-150-200 
A1-150-1000X
A1-150-2000X
A1-160-100 
A1-160-100X
A1-160-200 
A1-160-1000 

Uwe Raabe 29. Jul 2014 15:42

AW: Order by - aufsteigende Zahlenreihe ...
 
Wenn man sich in den Sortieralgorithmus einklinken könnte und dort StrCmpLogicalW verwenden könnte...

himitsu 29. Jul 2014 16:05

AW: Order by - aufsteigende Zahlenreihe ...
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1266953)
Wenn man sich in den Sortieralgorithmus einklinken könnte und dort StrCmpLogicalW verwenden könnte...

Sowas wird oft als "Natural-Sort" bezeichnet, oder Dergleichen, also eine Sortierung anhand der "menschlichen" Sprache.

Bei Google suchenfirebird natural sort


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.
Seite 2 von 3     12 3      

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