🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 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: 125
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
* LO-Experte *
Beiträge: 2884
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: 125
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 gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten