BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Sortierung Firebird

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
malt14
Beiträge: 119
Registriert: Fr 7. Nov 2014, 06:21

Sortierung Firebird

Beitrag von malt14 » So 16. Jan 2022, 11:38

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

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Sortierung Firebird

Beitrag von RobertG » So 16. Jan 2022, 20:51

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
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

malt14
Beiträge: 119
Registriert: Fr 7. Nov 2014, 06:21

Re: Sortierung Firebird

Beitrag von malt14 » Mo 17. Jan 2022, 18:58

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

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten