WHERE 句と NULL 値で複数の条件を処理する場合、どちらがより良いパフォーマンスまたはベスト プラクティスであるか疑問に思っています。
WHERE
u.id = COALESCE(user_id, u.id) AND
su.custom_id = COALESCE(student_number, su.custom_id)
また
WHERE
CASE
WHEN user_id IS NOT NULL AND LENGTH(user_id) > 0
THEN
u.id = user_id
ELSE
su.custom_id = student_number
END