我正在查询照片竞赛:
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。
答案 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