如何在 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
进行比较。
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
进行比较。