有没有办法在ORDER BY之上的某些结果的SQL ORDER BY列ASCENDING?

Car*_*eta 2 sql t-sql sql-server

我有一个100行行查找表,我用它来生成网页上的垂直复选框列表.非常简单的查询来获得结果:

SELECT servicetype FROM XXX
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以对列进行ORDER BY,但是某些已知值是否出现在排序列表的顶部?有点像(我甚至不知道怎么写这个伪代码但是...)

SELECT servicetype FROM XXX
ORDER BY servicetype ASC 
WITH servicetype IN ('Personal', 'Juggling') ON TOP
Run Code Online (Sandbox Code Playgroud)

所以我的列表看起来像:

Juggling         - On top regardless of ORDER BY
Personal         - On top regardless of ORDER BY
Anteating        - Everything else is ORDER BY
Barflying
Beafeating
Carswatting
etc...
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

Luk*_*zda 5

你可以使用:

SELECT servicetype FROM XXX
ORDER BY 
    CASE WHEN servicetype IN ('Personal', 'Juggling') THEN 0 ELSE 1 END ASC
  , servicetype ASC 
Run Code Online (Sandbox Code Playgroud)