AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Order by - aufsteigende Zahlenreihe ...
Thema durchsuchen
Ansicht
Themen-Optionen

Order by - aufsteigende Zahlenreihe ...

Ein Thema von erich.wanker · begonnen am 29. Jul 2014 · letzter Beitrag vom 11. Aug 2014
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:19
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
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?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#12

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:19
Und nur mit dem LPAD wie eingangs vorgeschlagen klappt auch nicht?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:21
Ich hab noch ein viel schlimmeres Problem ... Kunde mag folgendes "richtig" sortiert haben:
Code:
HP100
HP100Q
HP200
HP1000
HP1000Q
HP2000
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:24
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
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
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
460 Beiträge
 
Delphi XE4 Professional
 
#15

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:25
-> Und nur mit dem LPAD ?

klapp leider nicht ....
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:27

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
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:34
-> 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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:39
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
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 
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#19

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 16:42
Wenn man sich in den Sortieralgorithmus einklinken könnte und dort StrCmpLogicalW verwenden könnte...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#20

AW: Order by - aufsteigende Zahlenreihe ...

  Alt 29. Jul 2014, 17:05
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (29. Jul 2014 um 17:07 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 Uhr.
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