この章は、データをソート(分類)された状態でどのように表示させるかに関してと、どのように決められたレコード数に結果を制限するかに関してです。

1. 簡単なソート(並び替え)

全従業員のデータが欲しいと仮定しましょう。しかしながら、今回は従業員の苗字がアルファベット順に並べ替えされているデータが欲しいとしましょう。

SELECT *
FROM Employee AS emp
ORDER BY emp.Last_name ASC

下記の表となります。

{{h}}
{{r}}

2. 多重ソート(並び替え)

以前も行ったように、全ての会社のプロジェクトおよび、各プロジェクトに参加している従業員の苗字と名前に関するデータが欲しいと仮定しましょう。しかしながら、今回は第1にプロジェクト名、第2に従業員の苗字をアルファベット順に並べ替えたデータが欲しいとします。

SELECT proj.name AS project, emp.Last_name AS lastName, emp.First_name AS firstName
FROM Employee AS emp, Involvement AS inv, Project AS proj
WHERE inv.Project_id = proj.ID AND inv.Employee_id = emp.ID
ORDER BY proj.Name, emp.Last_name ASC

下記の表となります。

{{h}}
{{r}}

3. 限定

全従業員の中で2番目、3番目、4番目に給与の高いそれぞれの従業員に関するデータが欲しいと仮定しましょう。

SELECT emp.Last_name AS lastName, emp.First_name AS firstName, emp.Salary
FROM Employee AS emp
ORDER BY emp.Salary DESC
LIMIT 1,3

下記の表となります。

{{h}}
{{r}}

まとめ

これで、ASC節とDESC節を使用して、昇順または降順にデータを並び替えることができます。

LIMITを使用して、どのようにSQLクエリの集合の結果を限定するかについてもまた説明しました。その条項は、結果の中で抽出されるように設定されたレコードの範囲を定義します。そのシンタックス(構文規則)は次の通りです: LIMIT offset, number of records

この例では、最も給与の高い雇用者が0の位置に、2番目に給与の高い従業員が1の位置、3番目に給与の高い従業員は2の位置に索引(インデックス)されている、などです。この場合では、オフセット(補正値)は1で、レコード数は3、従って LIMIT 1, 3 となっています。

上記のLIMIT節は、MySQLとMariaDBのみで行う方法です。 他の RDBMS‘は、少し違った方法で行います。