不知道如何做到这一点,但是我说有一个由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项目位于列表的顶部!谢谢大家的帮助!
达明
答案 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
。