Datensatz filtern ohne Beachtung Groß- und Kleinschreibung

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Datensatz filtern ohne Beachtung Groß- und Kleinschreibung

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

von juetho » Do, 29.11.2012 08:59

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:
  • 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.
Folglich hätte ich nicht LCASE, sondern besser LOWER vorschlagen sollen. Jürgen

* DBMS = Datenbank-Managementsystem (für andere Leser als R und Robert)

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

von RobertG » Mi, 28.11.2012 20:54

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

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

von F3K Total » Mi, 28.11.2012 20:38

Hallo Robert,
klar, ist ja sogar besser, wie du es schreibst, ich dachte LCASE wäre Basic.
Wieder etwas gelernt, danke!

Gruß Rik

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

von RobertG » Mi, 28.11.2012 20:23

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

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

von F3K Total » Mi, 28.11.2012 18:18

Moin,
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
Hier eine weitere Möglichkeit, statt Kleinbuchstaben werden hier die Großbuchstaben mit "UPPER" direkt im SQL-Statement verglichen.

Code: Alles auswählen

oForm.filter = " UPPER (Name) LIKE UPPER('%" +sSuchwort1+ "%') OR UPPER (Firma) LIKE UPPER ('%" +sSuchwort1+ "%') OR UPPER (Bereich) LIKE UPPER ('%" +sSuchwort1+ "%')"
Gruß R

Re: Datensatz filtern ohne Beachtung Groß- und Kleinschreibu

von juetho » Mi, 28.11.2012 12:56

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

Nach oben