PH
Legendäres Mitglied
Da ich nun ratlos bin, wäre ich für Hilfe zur folgenden Aufgabe dankbar:
Ich habe 2 Tabellen, Table1 und Table2. Ich möchte beide Tabellen über eine Spalte (=joinspalte) wie folgt joinen:
Auf Deutsch: wenn table1.joinspalte mit table2.joinspalte übereinstimmt, dann diesen join nehmen. Wenn nicht, dann prüfen, ob concat(substr(table1.joinspalte,0,5),'000' mit table2.joinspalte übereinstimmt, wenn ja, dann diese nehmen.
Ich habe das so auf SQL übersetzt: (Oracle 9)
CODE WHERE (table1.joinspalte = table2.joinspalte OR (table1.joinspalte != table2.joinspalte AND concat(substr(table1.joinspalte,0,5),'000') = table2.joinspalte))
Logisch gesehen sollte es keine Fälle geben, wo beide Seiten des OR zutreffen. Aber Oracle gibt trotzdem jede Zeile doppelt aus??
Hilfe ???
Ich habe 2 Tabellen, Table1 und Table2. Ich möchte beide Tabellen über eine Spalte (=joinspalte) wie folgt joinen:
Auf Deutsch: wenn table1.joinspalte mit table2.joinspalte übereinstimmt, dann diesen join nehmen. Wenn nicht, dann prüfen, ob concat(substr(table1.joinspalte,0,5),'000' mit table2.joinspalte übereinstimmt, wenn ja, dann diese nehmen.
Ich habe das so auf SQL übersetzt: (Oracle 9)
CODE WHERE (table1.joinspalte = table2.joinspalte OR (table1.joinspalte != table2.joinspalte AND concat(substr(table1.joinspalte,0,5),'000') = table2.joinspalte))
Logisch gesehen sollte es keine Fälle geben, wo beide Seiten des OR zutreffen. Aber Oracle gibt trotzdem jede Zeile doppelt aus??
Hilfe ???