AGB  ·  Datenschutz  ·  Impressum  







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

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 haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.445 Beiträge
 
Delphi 12 Athens
 
#1

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 09:30
Zitat:
create a sql um die texte in der firebird datenbank 2 , 10 ,10.1, 10a, 12, 12.1a, 14, 20 aufsteigend zu sortieren
Code:
SELECT text_column
FROM your_table
ORDER BY
  CAST(SUBSTRING(text_column FROM '^[0-9]+') AS INTEGER),
  SUBSTRING(text_column FROM '[^0-9]+');
...probier mal. (ich habs nicht getestet )
Angehängte Grafiken
Dateityp: png GPT.PNG (39,8 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 09:57
Hört sich erstmal an, als würde eine NUMERIC-SORT COLLATION das bieten.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Frickler

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

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 11:23
...probier mal. (ich habs nicht getestet )
Wird nicht gehen. Das ist PostgreSQL-Syntax.

Aber Uwe gibt einen guten Tipp: mit
Code:
CREATE COLLATION UNICODE_NUMERIC
FOR UTF8
FROM UNICODE
CASE INSENSITIVE
'NUMERIC-SORT=1';
kann dann so
Code:
SELECT entry FROM tabelle ORDER BY entry COLLATE UNICODE_NUMERIC
sortiert werden.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.248 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 12:22
Ich würde die Strings passend umbauen (zumindest fürs Sortieren):

0000002.0000
0000010.0000
0000010.1000
0000010.a000
0000012.0000
0000012.1a00
0000014.0000
0000020.0000
  Mit Zitat antworten Zitat
Frickler

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

AW: Firebird SQL sortieren mit SIMILAR TO

  Alt 12. Apr 2024, 14:53
Ich würde die Strings passend umbauen (zumindest fürs Sortieren):

0000002.0000
0000010.0000
0000010.1000
0000010.a000
0000012.0000
0000012.1a00
0000014.0000
0000020.0000
Ich nehme mal an, dieses Feld soll auch "menschenlesbar" sein. Das heißt, man braucht dann noch ein zweites Feld, in das dann die "umgebauten" Strings kommen (bestückt von einem Trigger), und gibt beim Sortieren das zweite Feld an.

Oder man benutzt einen berechneten Index.

Aber was spricht gegen die Collation?

P.S.: ein Problem bei "SILIMAR TO" ist, dass die Regex das ganze Feld matchen muss. Teilstrings werden nicht gefunden. Wenn Deine Regex nach "Ziffern Punkt Buchstaben" sucht, wird "Ziffern Punkt Buchstaben Ziffern" nicht gefunden.

Geändert von Frickler (12. Apr 2024 um 14:59 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:18 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