Veröffentlicht 28. Juli 201015 j Hi, ich hab bei einer Abfrage auf eine Oracle DB das Problem, dass in 2 Feldern gleiche Teilstrings enthalten sein können. Beispiel: Feld1 = "Maria" Feld2 = "u. Maria" Ich möchte also abfragen, welcher Satz den Wert aus Feld1 auch in Feld2 stehen hat, bekomme das aber mit dem Wildcard nicht hin: select ROW from TABLE a where FELD2 like '%(select FELD1 from TABLE b where a.ROW = b.ROW)'; Jemand ne Idee? Danke für die Hilfe!
30. Juli 201015 j Ich wuerd mir das einfach gestalten,und mir die instr() funktion näher anschaun. BR Sven
30. Juli 201015 j Hi, Ich möchte also abfragen, welcher Satz den Wert aus Feld1 auch in Feld2 stehen hat, bekomme das aber mit dem Wildcard nicht hin: Danke für die Hilfe! Hallo, Du kannst dies mit REGEXP lösen. Mal ein Beispiel für die Suche : SELECT CASE WHEN REGEXP_LIKE (Feld2, Feld1,'c') THEN 'Match Found' ELSE 'No Match Found' END AS output FROM MyTable; Hinweis : Der Parameter 'c' steht für CaseSensitive, alternativ wäre auch ein 'i' (CaseInsensitive) möglich Gruss Bearbeitet 30. Juli 201015 j von dbwizard
30. Juli 201015 j Also meine Loesung (die Tastatur hier hat keine Umlaute) waere : SELECT * FROM yourTable yt WHERE instr(yt.field1,yt.field2,1) > 0 Klein, fein, einfach und uebersichtlich Gruss Sven
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.