SQL Server 入門 SQL Server 入門

ホーム > SQL の基本 > クエリーの結果を並べ替える

クエリーの結果を並べ替える

クエリーの結果をソートしてみよう

これまで、テーブルから全レコードや、検索条件を指定してレコードを取得しました。

今回は、ソート順を指定して、クエリーの結果を並べ替えてみましょう。


まだ作っていない場合は、以下のクエリーを実行して、データを取得する元のテーブルを作っておいてください。

CREATE TABLE Students (
   StudentID INT NOT NULL PRIMARY KEY,
   FirstName VARCHAR(50) NULL,
   LastName VARCHAR(50) NULL,
   Birthday DATE NULL,
   Gender CHAR(1) NULL
);

INSERT INTO Students
  (StudentID, FirstName, LastName, Birthday, Gender)
 VALUES
  (1, 'Taro', 'Yamada', '1980-02-15', 'M'),
  (2, 'Hanako', 'Tanaka' ,'1979-12-30', 'F'),
  (3, 'Yuko', 'Suzuki', '1979-07-07', 'F'),
  (4, 'Takao', 'Sato', '1980-03-12', 'M'),
  (5, 'Hiroki', 'Takagi', '1979-04-05', 'M');

クエリーでソート順を指定する

ソート順を指定するには SELECT 文の最後で ORDER BY 句を使います。


例えば、Students テーブルの全レコードを Birthday の昇順に並べたい時は、次のように指定します。

SELECT  *
FROM    Students
ORDER BY Birthday;

[ 実行結果 ]
Select 文 ORDER BY の実行結果 1


反対に、Students テーブルの全レコードを Birthday の降順に並べたい時は、以下のようにカラム名の後に DESC と追加します。

SELECT  *
FROM    Students
ORDER BY Birthday DESC;

[ 実行結果 ]
Select 文 ORDER BY の実行結果 2

昇順 が ASC で、降順が DESC ですが、何も指定しなければ 「 昇順 (ASC) 」 になります。


複数のカラムを使って並べ替えることも可能です。 カンマで区切って、カラムと順序を続けます。

例えば、まずは Gender(性別)で、次に Birthday の降順で並べ替えたい時は次のように指定します。

SELECT      *
FROM        Students
ORDER BY    Gender,
            Birthday DESC;

[ 実行結果 ]
Select 文 ORDER BY の実行結果 3


既存のテーブルのカラムだけでなく、SELECT 句で作ったカラムを使ってもソートすることができます。

例えば、YEAR は日付から年を取り出す関数で、YEAR(Birthday) のようにして Birthday の年を BirthdayYear というカラムとして取得しているとします。

そのようなクエリーの結果を、BirthdayYear と LastName で並べたい時は、次のように指定することができます。

SELECT      *,
            YEAR(Birthday) AS BirthdayYear
FROM        Students
ORDER BY    BirthdayYear,
            LastName;

[ 実行結果 ]
Select 文 ORDER BY の実行結果 4


TOP

おまけに、結果セットのうち、指定した行数のみを取得したい時には TOP を使って取得することができます。

例えば、先ほどの BirthdayYear と LastName で並べた結果の最初の 3 行だけを取得したい場合は次のように指定することができます。

SELECT      TOP 3
            *,
            YEAR(Birthday) AS BirthdayYear
FROM        Students
ORDER BY    BirthdayYear,
            LastName;
[ 実行結果 ]
Select 文 ORDER BY の実行結果 5


次は、T-SQL の集計関数を使ってみましょう。

次へ T-SQL の集計関数を使う

SQL Server 関連の人気書籍
ホーム > SQL の基本 > クエリーの結果を並べ替える