Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 15:02
* wenn es keinen . gibt, einen . hinten anhängen
* links mit 0 füllen, also gewünschte Anzahl minus Position des . (könnte man bestimmt LPAD für nutzen und einen Leerstring um die gewünschten x Nullen erweitern)
* und zuletzt hinten via RPAD mit weiteren 0 füllen

Wäre es nicht einfacher direkt ein "natual sort" zu verwenden?
[edit] Jupp, siehe #5

https://stackoverflow.com/questions/...ng-numerically
https://forum.lazarus.freepascal.org...?topic=48913.0



SQL-Code:
SELECT ENTRY
FROM TABELLE
order by
  CASE
    WHEN ENTRY SIMILAR TO '[[:DIGIT:]].[[:DIGIT:]]THEN CAST ENTRYAS INTEGER)
    WHEN ENTRY SIMILAR TO '[[:DIGIT:]][a-z]THEN ENTRY ....
    ELSE CAST(ENTRY AS INTEGER)
  END;
Du weißt, dass im RegEx der . kein Punkt sondern ein Irgendwas ist?
[edit] Stimmt ja, SIMILAR war kein RegEx, sondern was Eigenes und hier isses das _ .

Zitat:
CAST ENTRYAS INTEGER)
Fehlt da nicht eine Klammer ( und ein Leerzeichen?

Schneidet CAST eigentlich ab oder knallt es, wenn es kein Integer ist?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Apr 2024 um 15:26 Uhr) Grund: zu langsam
  Mit Zitat antworten Zitat