Datensatz filtern ohne Beachtung Groß- und Kleinschreibung
Moderator: Moderatoren
Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu
Das einfachste ist, alle Werte mit LCASE als Kleinbuchstaben zu vergleichen. Je nach Situation gibt es weitere Möglichkeiten; beispielsweise kennt die interne HSQLDB eine SOUNDEX-Funktion (Handbuch S. 272) für "unscharfe" Vergleiche. Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu
Moin,
Gruß R
Hier eine weitere Möglichkeit, statt Kleinbuchstaben werden hier die Großbuchstaben mit "UPPER" direkt im SQL-Statement verglichen.juetho hat geschrieben:Das einfachste ist, alle Werte mit LCASE als Kleinbuchstaben zu vergleichen. Je nach Situation gibt es weitere Möglichkeiten; beispielsweise kennt die interne HSQLDB eine SOUNDEX-Funktion (Handbuch S. 272) für "unscharfe" Vergleiche. Jürgen
Code: Alles auswählen
oForm.filter = " UPPER (Name) LIKE UPPER('%" +sSuchwort1+ "%') OR UPPER (Firma) LIKE UPPER ('%" +sSuchwort1+ "%') OR UPPER (Bereich) LIKE UPPER ('%" +sSuchwort1+ "%')"
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu
Hallo R,
Ob ich allerdings "UPPER" oder "LCASE" nehme ist doch wohl egal, oder? Jedenfalls versteht die interne HSQLDB beide Varianten. Im Gegensatz zu "UPPER" macht "LCASE" beim "ß" keine zwei Buchstaben aus einem.
Die Soundex-Funktion, die im Handbuch erwähnt ist, dürfte allerdings speziell etwas für den englischsprachigen Raum sein ....
Gruß
Robert
Ob ich allerdings "UPPER" oder "LCASE" nehme ist doch wohl egal, oder? Jedenfalls versteht die interne HSQLDB beide Varianten. Im Gegensatz zu "UPPER" macht "LCASE" beim "ß" keine zwei Buchstaben aus einem.
Die Soundex-Funktion, die im Handbuch erwähnt ist, dürfte allerdings speziell etwas für den englischsprachigen Raum sein ....
Gruß
Robert
Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu
Hallo Robert,
klar, ist ja sogar besser, wie du es schreibst, ich dachte LCASE wäre Basic.
Wieder etwas gelernt, danke!
Gruß Rik
klar, ist ja sogar besser, wie du es schreibst, ich dachte LCASE wäre Basic.
Wieder etwas gelernt, danke!
Gruß Rik
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu
Hallo Rik,
LCASE ist sowohl in Basic als auch in SQL mit der HSQLDB mit der gleichen Bedeutung einsetzbar. Ich musste aber auch erst wieder in dem Handbuch nachsehen, dass ich ja selbst zusammengestellt habe ... Auf S. 242 habe ich in einem Makro LCase in Basuc genutzt, um den Inhalt aus einem Eingabefeld in Kleinschrift zu setzen. Auf S. 243 habe ich LCASE als SQL-Befehl genutzt, um damit zu vergleichen.
Gruß
Robert
LCASE ist sowohl in Basic als auch in SQL mit der HSQLDB mit der gleichen Bedeutung einsetzbar. Ich musste aber auch erst wieder in dem Handbuch nachsehen, dass ich ja selbst zusammengestellt habe ... Auf S. 242 habe ich in einem Makro LCase in Basuc genutzt, um den Inhalt aus einem Eingabefeld in Kleinschrift zu setzen. Auf S. 243 habe ich LCASE als SQL-Befehl genutzt, um damit zu vergleichen.
Gruß
Robert
Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu
Um es noch weiter zu treiben: Ich bin bei meinem Vorschlag für LCASE von der Aufstellung im Handbuch S. 242 f. ausgegangen und wollte nur eine Variante angeben (also nicht zusätzlich LOWER). Da Lisa (wie üblich) weder die OO-Version noch das DBMS* angegeben hat, bin ich darauf auch nicht weiter eingegangen. In "meinem" SQL-Buch schreibe ich an vielen Stellen, dass man sowieso die spezielle DBMS-Dokumentation beachten muss wegen der zur Verfügung stehenden Funktionen.
Zusammenfassung:
* DBMS = Datenbank-Managementsystem (für andere Leser als R und Robert)
Zusammenfassung:
- UPPER und LOWER sind SQL-Standard, können also innerhalb eines SQL-Befehls verwendet werden.
- LCASE und UCASE sind nicht nur Funktionen von (Star-)Basic, sondern teilweise auch DB-Erweiterungen - nicht nur bei HSQL, sondern auch bei MySQL. Sie können also innerhalb von Makros und teilweise auch innerhalb von SQL-Befehlen verwendet werden.
- Wieweit Umlaute oder 'ß' sauber umgesetzt werden, hängt vom verwendeten Zeichensatz ab. Da OO auf Unicode ausgerichtet ist, kann man wohl von korrekter Verarbeitung ausgehen.
* DBMS = Datenbank-Managementsystem (für andere Leser als R und Robert)
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC