Указанная запись вверху списка результатов - PullRequest
0 голосов
/ 06 марта 2012

Задача: выбрать указанную запись в верхней части списка результатов

мой уродливый вариант:

(select * from mytable where id = 42)
union all
(select * from mytable where id != 42 order by id)

кроме ansi вариант запроса для mysql также будет очень интересным для меня

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

Нет разницы между ANSI и решениями SQL поставщика

select *
from mytable 
order by
    CASE WHEN id = 42 THEN 0 ELSE 1 END, id

Примечание: нет гарантированного или подразумеваемого заказа к таблице или SELECT без предложения ORDER BY

1 голос
/ 06 марта 2012

Если идентификатор всегда положительный, попробуйте:

select *
from mytable 
order by CASE WHEN id = 42 THEN 0 ELSE id END
...