- SQL データベースのテーブルに格納されている列に基づいてレコードを並べ替える場合は、SQL で ORDER BY 句の使用を検討します。
- SQL の ORDER BY 句は、テーブルの特定の列に基づいてレコードを並べ替えるのに役立ちます。これは、最初に、ORDER BY 句を適用している列に格納されているすべての値が並べ替えられることを意味します。次に、対応する列の値が、前の手順で取得した値と同じ順序で表示されます。
- ORDER BY 句を使用すると、要件に応じてレコードを昇順または降順に並べ替えることができます。 ASC キーワードが ORDER by 句とともに使用されると、レコードは昇順で並べ替えられます。 DESC キーワードはレコードを降順に並べ替えます 。レコードの並べ替えに基づいて列の後にキーワードが指定されていない場合、その場合、並べ替えはデフォルトで昇順で行われます。
レコードを並べ替えるためのクエリを作成する前に、構文を理解しましょう。
レコードを降順に並べ替える構文:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
例を使用して、このトピックについてさらに詳しく見てみましょう。例ではクエリを記述するために MySQL データベースを使用します。
次のレコードを含む顧客テーブルがあるとします。
ID | 名前 | 年 | 住所 | 給料 |
---|---|---|---|---|
1 | ヒマニ・グプタ | 21 | モディ・ナガル | 22000 |
2 | シヴァ・ティワリ | 22 | ボパール | 21000 |
3 | アジート・バーガブ | 4つ。 | メーラト | 65000 |
4 | リテーシュ・ヤダフ | 36 | アザムガル | 26000 |
5 | バルワント・シン | 4つ。 | バラナシ | 36000 |
6 | マヘシュ・シャルマ | 26 | マトゥラ | 22000 |
7 | ロヒット・スリヴァスタヴァ | 19 | アーメダバード | 38000 |
8 | ニール・シャルマ | 29 | プネ | 40000 |
9 | アカシュ・ヤダフ | 32 | ムンバイ | 43500 |
10 | サヒル・シェイク | 35 | オーランガバード | 68800 |
例 1:
Customers テーブルに格納されている顧客名の降順でレコードを並べ替えるクエリを作成します。
アルファベットの数字
クエリ:
mysql> SELECT *FROM customers ORDER BY Name DESC;
ここの SELECT クエリでは、レコードを並べ替えるために ORDER BY 句が列 'Name' に適用されます。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
ID | 名前 | 年 | 住所 | 給料 |
---|---|---|---|---|
2 | シヴァ・ティワリ | 22 | ボパール | 21000 |
10 | サヒル・シェイク | 35 | オーランガバード | 68800 |
7 | ロヒット・スリヴァスタヴァ | 19 | アーメダバード | 38000 |
4 | リテーシュ・ヤダフ | 36 | アザムガル | 26000 |
8 | ニール・シャルマ | 29 | プネ | 40000 |
6 | マヘシュ・シャルマ | 26 | マトゥラ | 22000 |
1 | ヒマニ・グプタ | 21 | モディ・ナガル | 22000 |
5 | バルワント・シン | 4つ。 | バラナシ | 36000 |
3 | アジート・バーガブ | 4つ。 | メーラト | 65000 |
9 | アカシュ・ヤダフ | 32 | ムンバイ | 43500 |
Customers テーブルに存在するすべてのレコードは、顧客名の降順で表示されます。
例 2:
Customers テーブルに格納されているアドレスの降順でレコードを並べ替えるクエリを作成します。
クエリ:
mysql> SELECT *FROM customers ORDER BY Address DESC;
ここの SELECT クエリでは、レコードを並べ替えるために ORDER BY 句が「Address」列に適用されます。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
ID | 名前 | 年 | 住所 | 給料 |
---|---|---|---|---|
5 | バルワント・シン | 4つ。 | バラナシ | 36000 |
8 | ニール・シャルマ | 29 | プネ | 40000 |
9 | アカシュ・ヤダフ | 32 | ムンバイ | 43500 |
1 | ヒマニ・グプタ | 21 | モディ・ナガル | 22000 |
3 | アジート・バーガブ | 4つ。 | メーラト | 65000 |
6 | マヘシュ・シャルマ | 26 | マトゥラ | 22000 |
2 | シヴァ・ティワリ | 22 | ボパール | 21000 |
4 | リテーシュ・ヤダフ | 36 | アザムガル | 26000 |
10 | サヒル・シェイク | 35 | オーランガバード | 68800 |
7 | ロヒット・スリヴァスタヴァ | 19 | アーメダバード | 38000 |
Customers テーブルに存在するすべてのレコードは、顧客の住所の降順で表示されます。
例 3:
Customers テーブルに格納されている顧客の給与の降順でレコードを並べ替えるクエリを作成します。
クエリ:
mysql> SELECT *FROM customers ORDER BY Salary DESC;
ここの SELECT クエリでは、レコードを並べ替えるために ORDER BY 句が列「Salary」に適用されています。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
ID | 名前 | 年 | 住所 | 給料 |
---|---|---|---|---|
10 | サヒル・シェイク | 35 | オーランガバード | 68800 |
3 | アジート・バーガブ | 4つ。 | メーラト | 65000 |
9 | アカシュ・ヤダフ | 32 | ムンバイ | 43500 |
8 | ニール・シャルマ | 29 | プネ | 40000 |
7 | ロヒット・スリヴァスタヴァ | 19 | アーメダバード | 38000 |
5 | バルワント・シン | 4つ。 | バラナシ | 36000 |
4 | リテーシュ・ヤダフ | 36 | アザムガル | 26000 |
6 | マヘシュ・シャルマ | 26 | マトゥラ | 22000 |
1 | ヒマニ・グプタ | 21 | モディ・ナガル | 22000 |
2 | シヴァ・ティワリ | 22 | ボパール | 21000 |
顧客テーブルに存在するすべてのレコードは、顧客の給与の降順で表示されます。
例 4:
Customers テーブルに格納されている顧客の年齢の降順でレコードを並べ替えるクエリを作成します。
クエリ:
mysql> SELECT *FROM customers ORDER BY Age DESC;
ここの SELECT クエリでは、ORDER BY 句が列「Age」に適用されてレコードが並べ替えられています。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
ID | 名前 | 年 | 住所 | 給料 |
---|---|---|---|---|
3 | アジート・バーガブ | 4つ。 | メーラト | 65000 |
5 | バルワント・シン | 4つ。 | バラナシ | 36000 |
4 | リテーシュ・ヤダフ | 36 | アザムガル | 26000 |
10 | サヒル・シェイク | 35 | オーランガバード | 68800 |
9 | アカシュ・ヤダフ | 32 | ムンバイ | 43500 |
8 | ニール・シャルマ | 29 | プネ | 40000 |
6 | マヘシュ・シャルマ | 26 | マトゥラ | 22000 |
2 | シヴァ・ティワリ | 22 | ボパール | 21000 |
1 | ヒマニ・グプタ | 21 | モディ・ナガル | 22000 |
7 | ロヒット・スリヴァスタヴァ | 19 | アーメダバード | 38000 |
顧客テーブルに存在するすべてのレコードは、顧客の年齢の降順で表示されます。
次のレコードを持つエージェントという名前の別のテーブルがあるとします。
援助 | 名前 | 作業エリア | 利益率 | 連絡先番号 | 給料 |
---|---|---|---|---|---|
1 | ガープリート・シン | バンガロール | 1 | 9989675432 | 43000 |
2 | サクシ・クマリ | チェンナイ | 5 | 8190567342 | 25000 |
3 | Prachi Desai | ムンバイ | 2 | 9056123432 | 60000 |
4 | シヴァニ もっと見る | プネ | 3 | 8894236789 | 35500 |
5 | パラヴィ・シン | デリー | 4 | 7798092341 | 38700 |
6 | ロヒニ・クルカルニ | アンバラ | 8 | 7890945612 | 25670 |
7 | シュエタは言った | チャンディーガル | 6 | 8898786453 | 31670 |
8 | ソナクシ ティワリ | ウダイプール | 2 | 9809453421 | 25050 |
9 | アヌシュカ・トリパティ | あなたの指に | 9 | 8909124326 | 38000 |
10 | デヴィカ・シャルマ | 行きます | 7 | 7864523145 | 44050 |
例 1:
エージェント テーブルに格納されているエージェント名の降順でレコードを並べ替えるクエリを作成します。
クエリ:
mysql> SELECT *FROM agents ORDER BY Name DESC;
ここの SELECT クエリでは、レコードを並べ替えるために ORDER BY 句が列 'Name' に適用されます。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
援助 | 名前 | 作業エリア | 利益率 | 連絡先番号 | 給料 |
---|---|---|---|---|---|
8 | ソナクシ ティワリ | ウダイプール | 2 | 9809453421 | 25050 |
7 | シュエタは言った | チャンディーガル | 6 | 8898786453 | 31670 |
4 | シヴァニ もっと見る | プネ | 3 | 8894236789 | 35500 |
2 | サクシ・クマリ | チェンナイ | 5 | 8190567342 | 25000 |
6 | ロヒニ・クルカルニ | アンバラ | 8 | 7890945612 | 25670 |
3 | Prachi Desai | ムンバイ | 2 | 9056123432 | 60000 |
5 | パラヴィ・シン | デリー | 4 | 7798092341 | 38700 |
1 | ガープリート・シン | バンガロール | 1 | 9989675432 | 43000 |
10 | デヴィカ・シャルマ | 行きます | 7 | 7864523145 | 44050 |
9 | アヌシュカ・トリパティ | あなたの指に | 9 | 8909124326 | 38000 |
エージェント テーブルに存在するすべてのレコードが、エージェント名の降順で表示されます。
例 2:
エージェント テーブルに格納されているエージェントの給与の降順でレコードを並べ替えるクエリを作成します。
クエリ:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
ここの SELECT クエリでは、レコードを並べ替えるために ORDER BY 句が列「Salary」に適用されています。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
援助 | 名前 | 作業エリア | 利益率 | 連絡先番号 | 給料 |
---|---|---|---|---|---|
3 | Prachi Desai | ムンバイ | 2 | 9056123432 | 60000 |
10 | デヴィカ・シャルマ | 行きます | 7 | 7864523145 | 44050 |
1 | ガープリート・シン | バンガロール | 1 | 9989675432 | 43000 |
5 | パラヴィ・シン | デリー | 4 | 7798092341 | 38700 |
9 | アヌシュカ・トリパティ | あなたの指に | 9 | 8909124326 | 38000 |
4 | シヴァニ もっと見る | プネ | 3 | 8894236789 | 35500 |
7 | シュエタは言った | チャンディーガル | 6 | 8898786453 | 31670 |
6 | ロヒニ・クルカルニ | アンバラ | 8 | 7890945612 | 25670 |
8 | ソナクシ ティワリ | ウダイプール | 2 | 9809453421 | 25050 |
2 | サクシ・クマリ | チェンナイ | 5 | 8190567342 | 25000 |
エージェント テーブルに存在するすべてのレコードは、エージェントの給与の降順で表示されます。
例 3:
エージェント テーブルに格納されているエージェントの作業領域の降順でレコードを並べ替えるクエリを作成します。
クエリ:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
ここの SELECT クエリでは、レコードを並べ替えるために列「WorkArea」に ORDER BY 句が適用されます。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
援助 | 名前 | 作業エリア | 利益率 | 連絡先番号 | 給料 |
---|---|---|---|---|---|
9 | アヌシュカ・トリパティ | あなたの指に | 9 | 8909124326 | 38000 |
8 | ソナクシ ティワリ | ウダイプール | 2 | 9809453421 | 25050 |
4 | シヴァニ もっと見る | プネ | 3 | 8894236789 | 35500 |
3 | Prachi Desai | ムンバイ | 2 | 9056123432 | 60000 |
10 | デヴィカ・シャルマ | 行きます | 7 | 7864523145 | 44050 |
5 | パラヴィ・シン | デリー | 4 | 7798092341 | 38700 |
2 | サクシ・クマリ | チェンナイ | 5 | 8190567342 | 25000 |
7 | シュエタは言った | チャンディーガル | 6 | 8898786453 | 31670 |
1 | ガープリート・シン | バンガロール | 1 | 9989675432 | 43000 |
6 | ロヒニ・クルカルニ | アンバラ | 8 | 7890945612 | 25670 |
エージェント テーブルに存在するすべてのレコードは、エージェントのワークエリアの降順で表示されます。
例 4:
エージェント テーブルに格納されているエージェントの利益率の降順でレコードを並べ替えるクエリを作成します。
クエリ:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
ここの SELECT クエリでは、レコードを並べ替えるために 'Profit_Percent' 列に ORDER BY 句が適用されます。 DESC キーワードはレコードを降順に並べ替えます。
次の出力が得られます。
援助 | 名前 | 作業エリア | 利益率 | 連絡先番号 | 給料 |
---|---|---|---|---|---|
9 | アヌシュカ・トリパティ | あなたの指に | 9 | 8909124326 | 38000 |
6 | ロヒニ・クルカルニ | アンバラ | 8 | 7890945612 | 25670 |
10 | デヴィカ・シャルマ | 行きます | 7 | 7864523145 | 44050 |
7 | シュエタは言った | チャンディーガル | 6 | 8898786453 | 31670 |
2 | サクシ・クマリ | チェンナイ | 5 | 8190567342 | 25000 |
5 | パラヴィ・シン | デリー | 4 | 7798092341 | 38700 |
4 | シヴァニ もっと見る | プネ | 3 | 8894236789 | 35500 |
3 | Prachi Desai | ムンバイ | 2 | 9056123432 | 60000 |
8 | ソナクシ ティワリ | ウダイプール | 2 | 9809453421 | 25050 |
1 | ガープリート・シン | バンガロール | 1 | 9989675432 | 43000 |
エージェント テーブルに存在するすべてのレコードは、エージェントの利益パーセントの降順で表示されます。