Veröffentlicht 10. November 201014 j 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 ;-)
10. November 201014 j 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.
10. November 201014 j 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%');
11. November 201014 j 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 ....
11. November 201014 j mal an eine tabelle gedacht in der du die 25 Strings liest? Stichwort subselect
11. November 201014 j 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;
11. November 201014 j Jo hast Recht ... ich muss wohl nen Fehler drin gehabt haben als ich das ausprobiert habe ... Danke
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.