Seite 1 von 1

Sortierung Firebird

Verfasst: So 16. Jan 2022, 11:38
von malt14
Guten Tag,

Firebird sortiert grundsätzlich Großbuchstaben zuerst.
https://bugs.documentfoundation.org/sho ... 124054#c25

Spezielle Zeichen wie ä é werden am Ende angezeigt.

In Abfragen kann man eine übliche Sortierung mit

Code: Alles auswählen

SELECT "Name" ORDER BY "Name" COLLATE UNICODE ASC
erreichen, wenn man "SQL-Befehl direkt ausführen" wählt.
Das hilft nur in Abfragen, nicht in Formularen.

In https://bugs.documentfoundation.org/sho ... 124054#c16, https://bugs.documentfoundation.org/sho ... 124054#c17 und https://bugs.documentfoundation.org/sho ... 124054#c18 wird auf eine Lösung hingewiesen, indem man die Tabellendefinition mittels ALTER ändert. Der dort angegebene Link funktioniert nicht.

Wie lautet der genaue SQL Befehl, um die Sortierung für eine odb Datei insgesamt oder eine einzelne Tabelle darin auf UNICODE in Extras/SQL zu ändern?
Ich frage danach auch im bug post https://bugs.documentfoundation.org/sho ... 124054#c28


Groß- und Kleinbuchstaben in Tabellen kann man per Extras/SQL ändern, und damit die Sortierung verbessern. Allerdings hilft das nicht bei speziellen Zeichen; auch kann die unterschiedliche Schreibweise wichtig sein.

Erster Buchstabe in Großbuchstaben, Rest unverändert

Code: Alles auswählen

UPDATE 
"Tabelle" 

SET "Spalte" = UPPER(substring("Spalte" from 1 for 1))||
substring("Spalte" from 2)
Alles in Großbuchstaben

Code: Alles auswählen

UPDATE "Tabelle" 
SET "Spalte" = UPPER("Spalte") 
Alles in Kleinbuchstaben

Code: Alles auswählen

UPDATE "Tabelle" 
SET "Spalte" = LOWER("Spalte")

Grüße
Malt

Version: 7.2.4.1 (x64) / LibreOffice Community
Build ID: 27d75539669ac387bb498e35313b970b7fe9c4f9
CPU threads: 6; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: CL

Re: Sortierung Firebird

Verfasst: So 16. Jan 2022, 20:51
von RobertG
Hallo malt14,

soweit ich das durchschaue geht das nur beim Erstellen der Tabellen nicht aber im Nachhinein. Du kannst ja einmal hier suchen:
https://firebirdsql.org/file/documentat ... mplete.pdf

Gruß

Robert

Re: Sortierung Firebird

Verfasst: Mo 17. Jan 2022, 18:58
von malt14
Hallo Robert,

Dank für den Link zum Firebird Buch, welches ich noch nicht kannte.

Dort gibt es einige Anweisungen, um die Sortierung zu ändern, z.B. S.116. Allerdings weiß ich nicht, ob und wie man dies

Code: Alles auswählen

ALTER TABLE tablename
<operation> [, <operation> ...]

<operation> ::= ADD <col_def>
                      ADD <tconstraint>
                      DROP colname
                      DROP CONSTRAINT constr_name
                      ALTER [COLUMN] colname <col_mod>

<col_def> ::= <regular_col_def> | <computed_col_def>

<regular_col_def> ::=
  colname {<datatype> | domainname}
  [DEFAULT {literal | NULL | <context_var>}]
  [NOT NULL]
  [<col_constraint>]
  [COLLATE collation_name]
in Extras/SQL eingeben kann.

S.180
Extras/SQL

Code: Alles auswählen

ALTER CHARACTER SET UTF8
       SET DEFAULT COLLATION UNICODE
ändert für neue Tabellen die Sortierung.

Kopiert man eine bestehende Tabelle1 und fügt diese unter neuem Namen Tabelle2 (Daten und Definition) ein, werden die Daten darin nach UNICODE sortiert. Man kann die ursprüngliche Tabelle1 löschen, Tabelle2 kopieren und als Tabelle1 einfügen. Ein umständliches Verfahren.

Grüße
Malt