SQL,WHERE id = 5,但我希望首先显示某条记录。

时间:2011-07-29 17:25:39

标签: sql sql-server-2005

不知道如何做到这一点,但是我说有一个由userID 5拥有的一堆项目的表,我想这样做,如果我搜索该用户的特定项目,他的所有项目都会显示出来,但搜索到的项目将首先出现,其余项目将跟随。例如:

Items table
-----------
itemID       userID    itemName
1              5       Coffee Mug
2              5       iPhone
3              5       LCD Monitor
4              5       Macbook pro
5              5       Shell

所以说我要搜索iPhone,我希望我的结果返回所有userID的项目(WHERE userID = 5),但是......我希望iPhone项目位于列表的顶部!谢谢大家的帮助!

达明

3 个答案:

答案 0 :(得分:3)

编辑现在我们不再搜索'iPhone',我们正在通过@ItemID指示第一项:

ORDER BY 
  CASE WHEN itemID = @ItemID THEN 'a' ELSE 'z' END 
  --, secondary ordering

答案 1 :(得分:2)

ORDER BY      
   case when Items.itemID = 2 then 0 else 1 end ASC      
   ,Items.itemName ASC

答案 2 :(得分:0)

SELECT创建一个附加列,其中case语句在满足条件时为0,否则为1,然后ORDER BY