SQL查询按字母顺序排序

Mad*_*shM 8 sql sql-server-2005

我有一张桌子如下,

ID    Description
--------------------
1     Bacteria
2     Cell Lines
3     Compounds
4     Virus
5     Others
6     AntiBody
Run Code Online (Sandbox Code Playgroud)

我想要的是一个单独的SQL查询,按字母顺序排序,但将"其他"(ID 5)作为最后一条记录.这甚至可能吗?

任何帮助将非常感谢.谢谢.

Joe*_*lli 10

SELECT ID, Description
    FROM YourTable
    ORDER BY CASE WHEN ID = 5 THEN 1 ELSE 0 END,
             Description
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 10

SELECT ID, Description
FROM yourtable
ORDER BY CASE WHEN Description = 'Others' THEN 1 ELSE 0 END, Description
Run Code Online (Sandbox Code Playgroud)

  • @syneptody:不是特别的.你为什么这么认为?就个人而言,我不是源代码中魔术数字的忠实粉丝,除非有一个非常令人信服的理由.如果你想要性能提升你可以使用描述'其他'获取行的ID并使用它,但鉴于只有6行,对我来说似乎有点过分(也许它会更慢!).无论如何,OP并没有提供关于他的具体需求的那么多信息,所以很难说什么是最好的. (3认同)
  • 当然是一个逐个案例的电话,但一般情况下1)在索引中覆盖ID的可能性更大2)在ID发生之前,描述将更改的可能性更大3)如果您使用ID(在此case)您可以在不触及查询的情况下更改要显示的值(只需更新ID = 5的说明) (2认同)