Ich versuche, eine zu schaffen, verbinden, dass die folgende Logik folgt:CASE Statment und IN() Operator in Joinbedingung
Wenn unser Unternehmen die Plaintiff ist, kommen auf die folgenden Rollentypen in der Tabelle : Verteidigung Firm, Verteidiger
Wenn unser Unternehmen auf die folgenden Rollentypen der Angeklagte, verbinden sie ist in die Tabelle: haben Plaintiff Firm, Plaintiff Attorney
Bisher habe ich diesen Code in der Join geschrieben, aber es erzeugt immer einen Fehler für jede Syntax Ich habe versucht:
WHERE
TRIAL.TRIAL_ID = OPPOSITION.TRIAL_ID
AND OPPOSITION.ROLE IN
CASE
WHEN TRIAL.POSITION = 'Plaintiff'
THEN ('Defense Firm','Defense Attorney')
WHEN TRIAL.POSITION = 'Defendant'
THEN ('Plaintiff Firm','Plaintiff Attorney')
END
Wir derzeit auf Oracle laufen (??) g.
Ist diese Art der Verknüpfungslogik überhaupt möglich?
EDITS:
- den Angeklagten/Plaintiff mixup im Abschnitt Code behoben
- Nicht sicher, welche Version von Oracle sind wir auf.
CASE-Anweisung sollte in Select nicht in WHERE-Klausel – 6ton
@ 6ton verwendet werden - Sie können einen Case-Ausdruck in einer JOIN- oder WHERE-Klausel verwenden; aber Sie können nur das einzelne Ergebnis dieses Ausdrucks mit etwas anderem vergleichen. Sie können nicht tun, was das OP versucht ... –
Ich habe nur ein paar Beispiele gesehen - habe es noch nie in der WHERE-Klausel benutzt. Danke @AlexPoole – 6ton