サーチ…
ORDER BYをTOPと組み合わせて使用すると、列の値に基づいて上位x行が返されます
この例では、我々は唯一の行の並べ替えを決定していない、GROUP BYを使用することができます返されたが、また、我々は結果セットを制限するために、TOPを使用していることから、返され何行。
無名の有名なQ&Aサイトから上位5名の評判ユーザーを返すとしましょう。
ORDER BYなし
この問合せは、デフォルトで順序付けられた上位5行(この場合は結果に表示されている列ではないにもかかわらず、この場合は「Id」)を表の最初の列として戻します。
SELECT TOP 5 DisplayName, Reputation
FROM Users
戻る...
| 表示名 | 評判 | 
|---|---|
| コミュニティ | 1 | 
| ジェフ・ダルガス | 12567 | 
| ジャロッド・ディクソン | 11739 | 
| ジェフアトウッド | 37628 | 
| ジョエル・スピルスキー | 25784 | 
ORDER BYで
SELECT TOP 5 DisplayName, Reputation
FROM Users
ORDER BY Reputation desc
戻る...
| 表示名 | 評判 | 
|---|---|
| JonSkeet | 865023 | 
| ダーリン・ディミトロフ | 661741 | 
| BalusC | 650237 | 
| ハンス・パサント | 625870 | 
| マーク・グラヴェル | 601636 | 
備考
一部のバージョンのSQL(MySQLなど)では、先頭にTOP代わりにSELECTの最後にLIMIT句を使用します。たとえば、次のようになります。 
SELECT DisplayName, Reputation
FROM Users
ORDER BY Reputation DESC
LIMIT 5
複数の列による並べ替え
SELECT DisplayName, JoinDate, Reputation FROM Users ORDER BY JoinDate, Reputation
| 表示名 | JoinDate | 評判 | 
|---|---|---|
| コミュニティ | 2008-09-15 | 1 | 
| ジェフアトウッド | 2008-09-16 | 25784 | 
| ジョエル・スピルスキー | 2008-09-16 | 37628 | 
| ジャロッド・ディクソン | 2008年10月03日 | 11739 | 
| ジェフ・ダルガス | 2008年10月03日 | 12567 | 
列番号(名前の代わりに)でソート
名前の列を記述するのではなく、列の番号(一番左の列が '1')を使用して、並べ替えの基となる列を示すことができます。
Pro:後で列名を変更する可能性が高いと思われる場合は、このコードを破ることはありません。
Con:これは一般的にクエリの可読性を低下させます(「ORDER BY 14」は何らかのカウントを必要としますが、スクリーン上にはおそらく指で表示されます)。
このクエリは、列名Reputation代わりにselect文から相対カラム位置3情報で結果をソートします。 
SELECT DisplayName, JoinDate, Reputation FROM Users ORDER BY 3
| 表示名 | JoinDate | 評判 | 
|---|---|---|
| コミュニティ | 2008-09-15 | 1 | 
| ジャロッド・ディクソン | 2008年10月03日 | 11739 | 
| ジェフ・ダルガス | 2008年10月03日 | 12567 | 
| ジョエル・スピルスキー | 2008-09-16 | 25784 | 
| ジェフアトウッド | 2008-09-16 | 37628 | 
エイリアス順
論理的なクエリ処理順序のために、エイリアスは、で順番に使用することができます。
SELECT DisplayName, JoinDate as jd, Reputation as rep
FROM Users
ORDER BY jd, rep
そして、select文の列の相対的な順序を使用することができます。上記の例を考えてください。別名を使用する代わりに、表示名のように相対的な順序を使用してください。Jdは1、Jdは2などです。
SELECT DisplayName, JoinDate as jd, Reputation as rep
FROM Users
ORDER BY 2, 3
カスタム注文の並べ替え順序
部門別にこのテーブルのEmployeeをソートするには、部門ORDER BY Departmentを使用します。ただし、ソート順がアルファベット順でない場合は、 Department値を正しくソートする別の値にマップする必要があります。これはCASE式で行うことができます: 
| 名 | 部門 | 
|---|---|
| 持っています | それ | 
| ユスフ | HR | 
| ヒラリー | HR | 
| ジョー | それ | 
| メリー | HR | 
| ケン | 会計士 | 
SELECT *
FROM Employee
ORDER BY CASE Department
         WHEN 'HR'         THEN 1
         WHEN 'Accountant' THEN 2
         ELSE                   3
         END;
| 名 | 部門 | 
|---|---|
| ユスフ | HR | 
| ヒラリー | HR | 
| メリー | HR | 
| ケン | 会計士 | 
| 持っています | それ | 
| ジョー | それ |