有没有办法按列递增进行 SQL 排序,并在排序依据之上获得某些结果



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

SELECT servicetype FROM XXX

我想知道是否有办法按列排序,但某些已知值是否出现在列表顶部? 类似的东西(我什至不知道如何编写这个伪代码,但是......

SELECT servicetype FROM XXX
ORDER BY servicetype ASC 
WITH servicetype IN ('Personal', 'Juggling') ON TOP

这样我的列表就会看起来像这样:

Juggling         - On top regardless of ORDER BY
Personal         - On top regardless of ORDER BY
Anteating        - Everything else is ORDER BY
Barflying
Beafeating
Carswatting
etc...

感谢您的帮助!

您可以使用:

SELECT servicetype FROM XXX
ORDER BY 
    CASE WHEN servicetype IN ('Personal', 'Juggling') THEN 0 ELSE 1 END ASC
  , servicetype ASC 
SELECT servicetype 
FROM XXX
order by case when servicetype = 'Juggling' then 'a'
              when servicetype = 'Personal' then 'b'
              else servicetype
         end

最新更新