Hallo Michael,
> 
> ich habe in einer BASE-Datenbank ein Feld FileName (nur der Name, ohne
> Pfad) und ich möchte den am letzten "." aufsplitten in
> Bezeichnung.Extension.

Das geht nicht so einfach mit den eingebauten Funktionen, da eben die
Extension von der Länge her nicht festlegbar ist (ich finde bei
Wikipedia auch Erweiterungen mit 6 Zeichen ...) und eine Rückwärtssuche
für die eingebaute HSQLDB nicht existiert. Du kannst natürlich einen
String so lange begrenzen, bis in dem Ergebnis kein trennender Punkt
mehr vorhanden ist. So ähnlich funktioniert im Handbuch die "Suche mit
LOCATE".
> 
> Zwar habe ich Beschreibungen einiger Funktionen
> <http://hsqldb.org/doc/2.0/guide/builtinfunctions-chapt.html#bfc_string_binary_functions>
> gefunden, aber INSTR und LOCATE führen zu Fehlermeldungen beim Ausführen
> der Abfrage. LOCATE läuft
> /UPPER(RIGHT("FileName", 5- POSITION ('.' IN right("FileName", 5)))) AS
> "TYP"/
> liefert aber nicht zuverlässig das richtige Ergebnis, da Werte wie
> 
>  * Text.EPUB,
>  * 1.HTML
>    aber auch
>  * Version 1.0.DOC
> 
> vorkommen können.
> 
> Meine Fragen:
> 
>  * Gibt es eine Suche beginnend von rechts oder kann ich das z.B. mit
>    Split und einem Array lösen?

Nicht mit Hilfe von Abfragen und Funktionen in der eingebauten
Datenbank. Dazu müsstest Du gegebenenfalls Makros bemühen.

>  * Warum funktionieren einige Funktionen von der zitierten Seite nicht
>    bzw. wo gibt es eine korrekte Übersicht?

Du suchst bei der falschen Version der HSQLDB. Die eingebaute Datenbank
ist die 1.8, nicht die 2.0. Alle für diese Datenbank verfügbaren
Funktionen sind auch im Handbuch beschrieben.
> 
> LibreOffice Version: 6.1.5.2 / Build-ID:
> 90f8dcf33c87b3705e78202e3df5142b201bd805
> Datenbank-Backend PostgreSQL 6.03 (die Abfrage möchte ich eigentlich in
> BASE bzw. final nur in dem entsprechenden Formular hinterlegen).

Wenn das Ganze unter PostgreSQL laufen soll, dann musst Du natürlich
dort in der Dokumentation nachsehen.

In MySQL gäbe es eine Funktion REVERSE(), mit der Du zuerst Deinen
String umdrehen könntest, dann darin den ersten Punkt suchen, an der
Stelle abschneiden und wieder zurückdrehen könntest. Diese Funktion ist
auch in der eingebauten Firebird-Datenbank verfügbar.

Gruß

Robert
-- 
Homepage: http://robert.familiegrosskopf.de
LibreOffice Community: http://robert.familiegrosskopf.de/map_3


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an