按顺序按字母排序结果按排序

时间:2012-07-02 15:26:54

标签: sql list sorting sql-order-by

我正在尝试编写一个查询,将要分解的表的结果排序为3个部分,并且我希望每个部分在完成后按字母顺序排列。这是我写的查询:

SELECT * FROM 
(SELECT TOP 100 PERCENT * FROM Hospital WHERE Status = 1 Order By HospitalShortName ) 
As Result Order BY CASE HospitalType 
WHEN 'HOS' THEN 1 WHEN 'NH' THEN 2 ELSE 3 END

所以我的预期结果是这样的:

  • 医院A
  • B医院
  • C医院
  • NursingHome A

但是,此查询会将列表分为正确的组,但不会返回由HospitalShortName按字母顺序排列的列表。我理解为什么上面的查询不起作用,但我迷失了从这里去的地方。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:4)

不需要子查询。只需将第二列添加到外部ORDER BY子句中。

SELECT * 
    FROM Hospital 
    WHERE Status = 1 
    ORDER BY CASE HospitalType 
                 WHEN 'HOS' THEN 1 
                 WHEN 'NH' THEN 2 
                 ELSE 3 
              END, 
              HospitalShortName 
相关问题