我正在尝试创建一个遵循以下逻辑的连接:
如果我们公司是原告,请加入以下角色类型 表:国防公司,国防检察官
如果我们公司是被告,请加入以下角色类型 表:原告公司,原告律师
到目前为止,我已将此代码编写在连接中,但它总是会为我尝试的每种语法生成错误:
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
我们目前正在运行Oracle(??)g。
这种连接逻辑是否可能?
编辑:
答案 0 :(得分:0)
您可以使用AND / OR逻辑和适当的括号分组来实现这一目标(如果我按照您的需要进行操作),例如:
WHERE TRIAL.TRIAL_ID = OPPOSITION.TRIAL_ID
AND (
(TRIAL.POSITION = 'Plaintiff'
AND OPPOSITION.ROLE IN ('Defense Firm', 'Defense Attorney')
OR
(TRIAL.POSITION = 'Defendant'
AND OPPOSITION.ROLE IN ('Plaintiff Firm', 'Plaintiff Attorney')
)
虽然看起来它们应该是ANSI JOIN子句的一部分,而不是WHERE子句......