Я хотел бы получить упорядоченный результат запроса, но мне нужно, чтобы перед списком были определенные строки. Примерно здесь, в переполнении стека, в списке ответов правильный ответ всегда первый.
Предполагается, что я должен иметь строки с идентификаторами 1,2,3 в качестве заголовка, остальные отсортированы по полю даты, возможно ли сделать что-то вроде:
SELECT * FROM foo ORDER BY id IN (1,2,3), created_date
Если нет, то что эффективнее? Будет много строк!
SELECT *, 0 AS head FROM foo WHERE id IN (1,2,3)
UNION
SELECT *, 1 AS head FROM foo WHERE id NOT IN (1,2,3)
ORDER BY head, created_date
или
SELECT *, IF(id IN (1,2,3), 0, 1) AS head
ORDER BY head, created_date
(сейчас я использую MySQL, но меня интересует любое другое решение SQL.)