Stefan87 Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 Erstmal guten Tag, ich habe ein Problem bei einem SQL auf einer Oracle DB. Ich habe als Beispiel eine Tabelle mit einer Spalte1 vom Typ String. In dieser möchte ich suchen ob sie den String 'TEST1', 'TEST2' oder 'TEST3' enthält. Und ich möchte das nicht über mehrere OR Verknüpfungen hinbekommen. Bei Integer Werten ist das ja kein Problem da es das "IN" gibt. Nur bei Strings klappt das leider nicht. Schön wäre soetwas wie: SELECT * FROM TABLE1 WHERE SPALTE1 IN ('TEST1', 'TEST2','TEST3') Ich hoffe jemand hat eine Idee ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Corto -sX- Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 die frage ist, ob die spalte nur den gesuchten Text enthält, oder davor und danach noch etwas steht. dann führt 'string' dazu das wirklich nur 'string' gefunden wird und nicht 'String' oder 'STRING' du kannst mit "like" arbeiten, und die Spalte mit "upper" ansprechen. also where upper(Spalte1) like upper('TEXT%'); das würde alles liefern was 'text' in irgendeiner groß-klein kombination enthält, sogar wenn danach noch Zeichen kommen. Falls der text an einer bestimmten stelle gesucht werden soll könnte es nützlich sein die funktion substr() zu verwenden um nicht mehr zu vergleich als sein muss. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Daij Geschrieben 10. November 2010 Teilen Geschrieben 10. November 2010 ich persönlich bin ja ein Freund von lower ;-) ich frage mich was dagegen spricht das ganze mit ORs zu verknüpfen? Wenn ich mich nicht täusche (und das ist durchaus möglich *noch noob bin* ) würde es so funktionieren können: where lower(spalte1) like lower('%text1%') or lower(spalte1) like lower('%text2%') or lower(spalte1) like lower('%text3%'); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Stefan87 Geschrieben 11. November 2010 Autor Teilen Geschrieben 11. November 2010 Erstmal danke für die Antworten. Zu Corto ... lower und upper ist erstmal egal und auch ob davor oder danach andere Zeichen sind. Ich suche eine möglichkeit ohne die "OR" verknüpfung in einer String Spalte nach mehereren verschiedenen Strings wie z.b. "Text1" und "Text2" zu suchen. Zu Daij... jep so würde es mit "or" aussehen allerdings würde ich es gerne anders machen da ich sonst sehr viele verschachtelte or anweisungen hätte da ich nach ca 25 begriffen suchen muss.... ich glaube aber das es da nicht wirklich eine schöne Lösung für gibt .... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Corto -sX- Geschrieben 11. November 2010 Teilen Geschrieben 11. November 2010 mal an eine tabelle gedacht in der du die 25 Strings liest? Stichwort subselect Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Corto -sX- Geschrieben 11. November 2010 Teilen Geschrieben 11. November 2010 Ich weis ja nicht woher du die info hast das "in" nicht für text geht. Du musst nur Hochkommata verwenden. update tablename set column_1='string' where lower(search_column) in ( 'STRING1', 'STRING2', 'STRING3', ...., ...., 'STRING25' ) and condition_colum = whatever; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Stefan87 Geschrieben 11. November 2010 Autor Teilen Geschrieben 11. November 2010 Jo hast Recht ... ich muss wohl nen Fehler drin gehabt haben als ich das ausprobiert habe ... Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.