meht Geschrieben 28. Juli 2010 Geschrieben 28. Juli 2010 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!
Dusk Geschrieben 28. Juli 2010 Geschrieben 28. Juli 2010 Geht ein simples "WHERE Feld2 like '%' + Feld1 + '%'" nicht?
streffin Geschrieben 30. Juli 2010 Geschrieben 30. Juli 2010 Ich wuerd mir das einfach gestalten,und mir die instr() funktion näher anschaun. BR Sven
dbwizard Geschrieben 30. Juli 2010 Geschrieben 30. Juli 2010 (bearbeitet) 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 2010 von dbwizard
streffin Geschrieben 30. Juli 2010 Geschrieben 30. Juli 2010 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden