Hi there,
kann mir jemand einen Tip geben, wie man unter ORACLE ein SQL-Statement wie z.B. „SELECT * from xyz WHERE name LIKE ‚%begriff%‘“ formulieren kann, daß „begriff“ schreibweisenunabhängig behandelt wird, also die Suche nach „Begriff“, „begriff“ oder auch „bEGriFF“ das gleiche Ergebnis liefert.
Meines Wissens ist die LIKE-Suche in MySQL standardmäßig unabhängig von groß und kleinschreibung. Geht das in ORACLE (8.1.5 bzw. 8.1.7) auch bzw. kann man da irgendwo einen Schalter umlegen?
Bin dankbar für jede Antwort.
Hallo,
like in Oracle sucht das, was angegeben wird.
Wie wäre es denn mit:
SELECT * from xyz WHERE lower(name) LIKE ‚%begriff%‘" Wenn Begriff in Kleinbuchstaben angegeben wird. Oder …upper(name)…
Unterschiedliche Schreibweisen würden dann allerdings häufiger gefunden werden.
Ciao, Uwe
Hallo,
like in Oracle sucht das, was angegeben wird.
Wie wäre es denn mit:SELECT * from xyz WHERE lower(name) LIKE ‚%begriff%‘" Wenn
Begriff in Kleinbuchstaben angegeben wird. Oder
…upper(name)…
fast richtig, aber
SELECT * FROM xyz WHERE UPPER(name) LIKE UPPER(’%bEgRiff%’), bzw.
SELECT * FROM xyz WHERE LOWER(name) LIKE LOWER(’%bEgRiff%’)
ist doch besser
Dmitri
…
fast richtig, aber
SELECT * FROM xyz WHERE UPPER(name) LIKE UPPER(’%bEgRiff%’),
bzw.
SELECT * FROM xyz WHERE LOWER(name) LIKE LOWER(’%bEgRiff%’)
ist doch besserDmitri
btw: sofern das Attribut name indiziert ist wird der Index
bei Verwendung von UPPER/LOWER vom Optimizer nicht genutz.
Es gibt jedoch ab Oracle 8i EE die Möglichkeit function-based
Indexes zu verwenden:
CREATE INDEX idx_upper_name
ON tabelle(UPPER(name))
Grüße
Tom