0

テーブルの結果を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のアルファベット順ではありません。上記のクエリが機能しない理由は理解していますが、ここからどこに進むべきか迷っています。どんな助けでも大歓迎です。

4

1 に答える 1

4

サブクエリは必要ありません。2番目の列を外側のORDERBY句に追加するだけです。

SELECT * 
    FROM Hospital 
    WHERE Status = 1 
    ORDER BY CASE HospitalType 
                 WHEN 'HOS' THEN 1 
                 WHEN 'NH' THEN 2 
                 ELSE 3 
              END, 
              HospitalShortName 
于 2012-07-02T15:29:33.210 に答える