問題:
SQLクエリの結果を昇順または降順で並べ替えます。
例:
私たちのデータベースには、salary_information
id
列にデータがあります 、first_name
、last_name
、およびmonthly_earnings
。従業員をmonthly_earnings
で並べ替えたい 降順。
id | first_name | last_name | monthly_earnings |
---|---|---|---|
1 | カルバン | リオス | 3500 |
2 | アラン | パターソン | 4000 |
3 | カート | エバンス | 2300 |
4 | アレックス | ワトキンス | 5500 |
解決策:
ORDER BY
を使用します 句。クエリは次のとおりです:
関数CURRENT_DATE
を使用します 現在の日付を取得するには:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
クエリの結果は次のとおりです。
first_name | last_name | monthly_earnings |
---|---|---|
アレックス | ワトキンス | 5500 |
アラン | パターソン | 4000 |
カルバン | リオス | 3500 |
カート | エバンス | 2300 |
これで、アレックスワトキンスがリストの最初にいることがわかります。つまり、彼が最も多くのお金を稼いでいるということです。
ディスカッション:
ORDER BY
を使用する データセットを昇順または降順で並べ替える場合は、句。 ORDER BY
の構文 条項は次のとおりです:
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
上記では、ASC|DESC
キーワードASC
のいずれかを選択する必要があることを意味します (昇順)またはDESC
(降順)データセットを希望どおりに並べ替えます。
数値列で並べ替えるだけでなく、テキスト列で並べ替えることもできます。 ORDER BY
句はテキスト列をアルファベット順にソートします。
列名の代わりに、左から数えて列の位置を使用することもできます。したがって、この例では、次のように書く代わりに:
ORDER BY monthly_earnings DESC
次のように書くこともできます:
ORDER BY 3 DESC
例のテーブルをfirst_name
で並べ替える場合 列をアルファベット順(昇順)にすると、次のクエリを使用できます。
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
複数の列で並べ替えることができることも注目に値します。これは、特定の列の一部の値が繰り返され、追加の並べ替えが必要な場合に役立ちます。この場合、ORDERBY句で列名をコンマで区切ります。
ある列で昇順で並べ替えたり、別の列で降順で並べ替えたりすることもできます。以下に、この組み合わせの構文を示します。
ORDER BY Col1 ASC, Col2 DESC;
ASC
を省略した場合 またはDESC
キーワードでは、昇順の並べ替えがデフォルトで実行されます。