Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird Sortierung Umlaute (https://www.delphipraxis.net/189702-firebird-sortierung-umlaute.html)

Lemmy 12. Jul 2016 06:44

Datenbank: Firebird • Version: 2.1 • Zugriff über: Umlaute

Firebird Sortierung Umlaute
 
Hallo zusammen,

wenn ich eine FirebirdDB her nehmen und per ISO8859_1 collate de_de einrichte und dann ein

Code:
Select Name from Kunde order by 1
mache, werden die Umlaute anscheinen nach DIN 5007 Var1 (ä=a) sortiert:


Baumgartner
Bäumel
Baumüller


Gibt es eine Möglichkeit nach DIN 5007 Var2 zu sortieren (ä=ae)? Oder ist das dann nur clientseitig möglich?

Grüße

mkinzler 12. Jul 2016 07:47

AW: Firebird Sortierung Umlaute
 
Oder eine andere Collation einstellen bzw. einrichten.

Neutral General 12. Jul 2016 07:52

AW: Firebird Sortierung Umlaute
 
Oder (wenn auch etwas umständlich):

PHP-Quellcode:
Select
  Name
from Kunde
order by replace(replace(replace(Name, 'ä', 'ae'), 'Ä', 'Ae'), 'ö', 'oe') -- usw

DeddyH 12. Jul 2016 08:03

AW: Firebird Sortierung Umlaute
 
Ich bin nicht ganz sicher, aber evtl. gibt es auch bei Firebird das COLLATE in der ORDER BY-Klausel.

Lemmy 12. Jul 2016 14:24

AW: Firebird Sortierung Umlaute
 
Zitat:

Zitat von mkinzler (Beitrag 1342407)
Oder eine andere Collation einstellen bzw. einrichten.

Hast Du da irgend einen Tipp für mich? Anscheinend klappt es mit CharSet UTF8 und Collation Unicode - aber für ISO8859_1 habe ich bisher keine andere collation gefunden die funktioniert.

mkinzler 12. Jul 2016 14:47

AW: Firebird Sortierung Umlaute
 
Vielleicht hilft das

SQL-Code:
create collation ISO8859_1_UNICODE for ISO8859_1;
http://firebirdsql.org/refdocs/langr...ollations.html

Lemmy 12. Jul 2016 15:03

AW: Firebird Sortierung Umlaute
 
nope, Sortierung bleib bei lexikalischer Sortierung (ä=a) und nicht wie gewünscht Telefonliste (ä=ae)

himitsu 12. Jul 2016 15:08

AW: Firebird Sortierung Umlaute
 
Jo, kann man auch im ORDER BY angeben.

http://www.destructor.de/firebird/charsets.htm
http://firebirdsql.org/refdocs/langr...ollations.html

Die Collation gibt an, unter welchen sprachlichen Regeln die Sortierung und Indizierung vorgenommen werden,
also wie der Stringverleich arbeitet, denn je nach Sprache gibt es da Unterschiede.

Das betrifft nicht nur die Buchstaben und Sonderzeichen, sondern auch die Groß-/Kleinschreibung.

Lemmy 12. Jul 2016 15:31

AW: Firebird Sortierung Umlaute
 
Zitat:

Zitat von himitsu (Beitrag 1342489)
Die Collation gibt an, unter welchen sprachlichen Regeln die Sortierung und Indizierung vorgenommen werden,
also wie der Stringverleich arbeitet, denn je nach Sprache gibt es da Unterschiede.

und wie genau hilft mir das weiter, wenn die default-Einstellung der Datenbank de_de lautet, es keine andere Einstellung für Deutschland gibt und ich mit der Sortierreihenfolge von de_de nicht einverstanden bin? ;-)

Und um alle Klarheiten zu beseitigen:

Code:
 Select Name from Kunde order by 1 collate de_de
bringt genau das gleiche "falsche" Ergebnis - jetzt sogar mit einer eigenen Sortierspalte:



BachBach
BachlBachl
BächleinBaechlein
BachmannBachmann



Und nein, eine Sortierspalte ist nicht wirklich hilfreich, da es nicht nur eine Tabelle betrifft....

Grüße

himitsu 12. Jul 2016 15:33

AW: Firebird Sortierung Umlaute
 
Zitat:

Zitat von Lemmy (Beitrag 1342487)
nope, Sortierung bleib bei lexikalischer Sortierung (ä=a) und nicht wie gewünscht Telefonliste (ä=ae)

Da fehlt das FROM und dort eine Collation angeben, welche wie gewünscht sortiert.
Oder die ATTRIBUTE mit der passenden LOCALE.

http://firebirdsql.org/refdocs/langr...llation-create

Wieso eine Sortierspalte?
ORDER BY mit "passendem" COLLATE und schon wird die originale Spalte anders sortiert, als es die COLLATION der Spalte (in der Tabelle) definiert hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 Uhr.
Seite 1 von 2  1 2      

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