SQL特定项目在上面

时间:2014-12-16 11:08:05

标签: sql select sql-order-by case

我正在查询照片竞赛:

SELECT * FROM `users` ORDER BY entry_id DESC

结果给出10条记录,其中entry_id为10,9,8,7,...... 1

如何在顶部选择特定条目? 由于存在要求是否存在引用ID,因此首先显示条目。

所以预期的结果应该是:4,10,9,8,7,6,5,3,2,1如果是参考ID则为4。

2 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分: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