問題:
特定のテーブルのレコードを2列で並べ替えて表示する必要があります。
例:
私たちのデータベースには、employee 次の列を使用:id 、first_name 、last_name 、およびsalary 。
| id | first_name | last_name | 給与 |
|---|---|---|---|
| 1 | リサ | ウルマン | 3000 |
| 2 | エイダ | ミューラー | 2400 |
| 3 | トーマス | 緑 | 2400 |
| 4 | マイケル | ミューラー | 3000 |
| 5 | メアリー | 緑 | 2400 |
各従業員のすべての情報を表示しますが、最初に給与の降順で、次に姓の昇順でレコードを並べ替えます。
解決策:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
このクエリは、次の2つの列に従って並べ替えられたレコードを返します。 salary およびlast_name 。
| id | first_name | last_name | 給与 |
|---|---|---|---|
| 4 | マイケル | M uller | 3000 |
| 1 | リサ | U lman | 3000 |
| 3 | トーマス | G reen | 2400 |
| 5 | メアリー | G reen | 2400 |
| 2 | エイダ | M uller | 2400 |
ディスカッション:
テーブルからレコードを選択したいが、それらを2つの列に従ってソートしたい場合は、ORDER BYを使用して行うことができます。 。この句は、SQLクエリの最後にあります。
ORDER BYの後 キーワードに、レコードを最初に並べ替える列の名前(この例では、給与)を追加します。次に、カンマの後に2番目の列を追加します(この例では、last_name )。列ごとに個別に並べ替え順序(昇順または降順)を変更できます。昇順(低から高)を使用する場合は、ASCを使用できます。 キーワード;ただし、このキーワードはオプションです。何も指定されていない場合のデフォルトの順序です。降順を使用する場合は、DESCを入力します 適切な列の後のキーワード(この例では、salaryに降順を使用しました 列)。
この例では、最初に結果を給与の降順(高い給与から低い給与)で並べ替え、次に、すでに並べ替えられたレコード内で姓の昇順で並べ替えました。