Я пытаюсь отсортировать некоторые результаты по рангу, но хочу подтолкнуть результаты без изображения до конца.
У меня есть таблица с instructor_profiles
и еще одна users
таблица. Я пытаюсь отсортировать профиль преподавателя по плотному рангу, но хотел бы показать в конце те, у кого нет картинок.
Мой ранг работает нормально, но я не могу понять, как это сделать.
Например:
SELECT ts_rank_cd("instructor_profiles"."search_vector", plainto_tsquery('english', 'skate')),
"instructor_profiles".id,
"instructor_profiles".title,
"instructor_profiles".image,
users.avatar
FROM "instructor_profiles" LEFT JOIN users ON users.id = instructor_profiles.user_id
WHERE ("instructor_profiles"."search_vector" @@ plainto_tsquery('english', 'skate'))
ORDER BY
ts_rank_cd("instructor_profiles"."search_vector", plainto_tsquery('english', 'skate')) desc
LIMIT 50 OFFSET 0
Дойдем до такого результата:
Затем я попытался изменить ORDER BY на
ORDER BY instructor_profiles.image NULLS LAST,
users.avatar NULLS LAST,
ts_rank_cd("instructor_profiles"."search_vector", plainto_tsquery('english', 'skate')) desc
Но тогда мой вид по рангу совершенно запутался: