如何在 Inner Join 中添加大小写

How to add case in Inner Join

Oracle:在内连接中,如果条件 - A 成功,我想检查条件 -1,如果条件 b 成功,则检查条件 -2。为此,我写了下面但没有运气。

谁能帮帮我

INNER JOIN student_unit_attempt sua on sua.person_id=sei.person_id 和 sua.course_cd=sei.course_cd 和(大小写 当 i_unit_attempt_status 不为空时 然后 (sua.unit_attempt_status = 'ENROLLED') 当 i_unit_attempt_status 为空时 然后 (sua.unit_attempt_status ='COMPLETED') 结束)

尝试重新表述 WHERE 子句中的逻辑,甚至不使用 CASE:

SELECT ...
INNER JOIN student_unit_attempt sua
    ON sua.person_id = sei.person_id AND
       sua.course_cd = sei.course_cd AND (
       (i_unit_attempt_status IS NOT NULL AND sua.unit_attempt_status = 'ENROLLED') OR
       (i_unit_attempt_status IS NULL AND sua.unit_attempt_status = 'COMPLETED'));

CASE 表达式必须 return 值如下:

INNER JOIN student_unit_attempt sua 
on sua.person_id=sei.person_id 
AND sua.course_cd=sei.course_cd 
AND sua.unit_attempt_status = CASE 
  WHEN i_unit_attempt_status IS NOT NULL THEN 'ENROLLED' 
  ELSE 'COMPLETED' 
END

CASE 编辑的值 return 与 sua.unit_attempt_status 进行比较。