Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 16: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?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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