SQL-Abfrage Groß-/Kleinschreibung Suchbegriff?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Carsten01
*
Beiträge: 17
Registriert: Mi, 20.12.2006 17:10

SQL-Abfrage Groß-/Kleinschreibung Suchbegriff?

Beitrag von Carsten01 »

Hallo,
eine Datenquelle liegt in Form einer SQL-Datei vor. Leider funktioniert die Abfrage nur Case-sensitiv:
SELECT * FROM Tabelle WHERE NAME LIKE such%
Wie erreicht man, daß Groß-/Klein-Schreibung beim Suchbegriff (Teilstring) unberücksichtigt bleiben?
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Carsten,

in dem du Funktionen nutzt. Die hängen aber von DBMS ab und und können nicht grundsätzlich gelten.
Beispiel: Du wandelst sowohl den Suchstring als auch die Spalte in Grossbuchstaben (oder Kleinbuchstaben) um.
Bsp:
SELECT * FROM Tabelle WHERE LCASE(NAME) LIKE LCASE(such% )

Aber wie gesagt: Funktionen musst du in der Dokumentation der Datenbank suchen, und den richtigen Einsatz :-)

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Carsten01
*
Beiträge: 17
Registriert: Mi, 20.12.2006 17:10

Beitrag von Carsten01 »

Wenn Du keine Antwort weißt, warum schreibst Du dann eigentlich?
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

??
Liest du eigentlich, was ich schreibe? Ich hab dir eine klare Antwort gegeben, aber offensichtlich verstehst du sie nicht.
Warum fragst du dann??
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Carsten01
*
Beiträge: 17
Registriert: Mi, 20.12.2006 17:10

Beitrag von Carsten01 »

[quote="Toxitom"]??
Liest du eigentlich, was ich schreibe? Ich hab dir eine klare Antwort gegeben, aber offensichtlich verstehst du sie nicht.
Warum fragst du dann??[/quote]

Ok, meine Bemerkung war unpassend, sorry. Ich meinte erwähnt zu haben, daß es um eine dBase-Datei geht, aber das war in einem anderen Thema. Jedenfalls hilft dabei ein RTFM nicht weiter und es funktioniert weder lcase, ucase oder upper - ich bekomme die Abfrage nicht case-insensitiv hin.
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Carsten,

hmm, dBase - das ist nur ein Tabellenformat, da gibt es keine Funktionen, die das DBMS unterstützt, jedenfalls nicht in Verbindung mit Base.
Du könntest zwar eine Basefunktion benutzen, um die Spalte umzuwandeln, das bringt aber leider wenig, da die neue Spalte dann leider nicht als Auswahlkriterium genutzt werden kann.
Muss es eine dBase Datei bleiben? Sonst wandele sie in eine HSQLDB um, dann sollte das oben genannte funktionieren.

Im Notfall musst du halt die Selektion manuell in Basic durchführen, je nach Anzahl der Datensätze, diese zunächst in ein Array einlesen (alle) und dann entsprechende Routinen schreiben. OK, ist sehr umständlich und wahrscheinlich dem Ergebnis nicht zuträglich, was besseres fällt mir aber auch nicht ein.
Höchstens: Wenn es nur um den ersten Buchstaben geht (Gros/Klein) könntest du beide Fälle mit einer Oder-Verknüpfung abfangen. Das wird natürlcih nix mehr, wenn mehr Buchstaben beliebig geschrieben sein können.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Antworten