AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird SQL sortieren mit SIMILAR TO

Firebird SQL sortieren mit SIMILAR TO

Ein Thema von stalkingwolf · begonnen am 12. Apr 2024 · letzter Beitrag vom 16. Apr 2024
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

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

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?
Ein Therapeut entspricht 1024 Gigapeut.

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

Registriert seit: 6. Mär 2007
Ort: Osnabrück
625 Beiträge
 
Delphi XE6 Enterprise
 
#2

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 15:29
Schneidet CAST eigentlich ab oder knallt es, wenn es kein Integer ist?
Es knallt.

Lösung a la Delphi:
Code:
CREATE FUNCTION StrToIntDef(str VARCHAR(20), def INTEGER = 0)
RETURNS INTEGER
AS
BEGIN
  RETURN CAST(str AS INTEGER);
  WHEN ANY DO RETURN def;
END
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
549 Beiträge
 
#3

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 16. Apr 2024, 10:36
Hallo zusammen,

vielen Dank für die Antworten. Ich werde nachher einmal ein paar testen.
Der Inhalt der Spalten ist nicht von uns sondern von einem Fremdsystem auf welches wir zugreifen.

Edit : collate hat einwandfrei funktioniert.

Geändert von stalkingwolf (16. Apr 2024 um 10:43 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:22 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-2025 by Thomas Breitkreuz