2014-12-16 5 views
1

Я, имеющий этот запрос для фотоконкурса:SQL Specific товара сверху

SELECT * FROM `users` ORDER BY entry_id DESC 

Результат дает 10 записей с entry_id 10, 9, 8, 7, ...... 1

Что я могу сделать, чтобы выбрать конкретную запись сверху? Как есть требование, если есть идентификатор ссылки, сначала введите запись.

Таким образом, ожидаемый результат должен быть: 4,10,9,8,7,6,5,3,2,1, если 4, если идентификатор ссылки.

+1

Я не играю в вашей лотерее :) – StuartLC

ответ

4

Попробуйте это:

SELECT * 
FROM `users` 
ORDER BY (CASE WHEN entry_id = 4 THEN 0 ELSE 1 END), entry_id DESC; 
0

для более динамической функции подход создать табличное значение

create function OrderData(@a int) 
returns @t table (id int) 
as 
begin 
insert into @t 
SELECT * 
FROM ab 
ORDER BY (CASE WHEN id = @a THEN 0 ELSE 1 END), id DESC 
return; 
end; 

выберите * из dbo.abc (4)

выход 4,10, 9,8,7,6,5,3,2,1

select * from dbo.abc(5) 

выход 5,10,9,8,7,6,4,3,2,1

Смежные вопросы