sql >> データベース >  >> RDS >> Database

SQL ORDER BY

    SQL ORDER BY

    SQL ORDER BY 句は、データベースのテーブルに保存されているデータを並べ替えるために使用されます。 。並べ替えは、昇順、降順、またはテーブルの複数の列に基づいて行うことができます

    通常、デフォルトの並べ替え順序は昇順です。

    SELECT expressions
     FROM tables
     WHERE conditions
     ORDER BY expression ASC | DESC; 

    以下は、一般的なORDERBY句の構文です。

    例:

    次の顧客について考えてみましょう。 テーブル。

    ID 名前 年齢 アドレス 給与
    1 ヒマニグプタ 21 モディナガー 22000
    2 シヴァティワリ 22 ボパール 21000
    3 Ajeet bhargav 45 メーラト 65000
    4 Ritesh yadav 36 アザンガル 26000
    5 Balwant singh 45 バラナシ 36000
    6 マヘーシュシャルマ 26 マトゥラ 22000
     SELECT * 
     FROM Customers
     ORDER BY NAME, SALARY; 

    上記のクエリは、NAME列とSALARY列に基づいてすべてのレコードを昇順で並べ替えます。

    出力:

    ID 名前 年齢 アドレス 給与
    3 Ajeet bhargav 45 メーラト 65000
    5 Balwant singh 45 バラナシ 36000
    1 ヒマニグプタ 21 モディナガー 22000
    6 マヘーシュシャルマ 26 マトゥラ 22000
    4 Ritesh yadav 36 アザンガル 26000
    2 シヴァティワリ 22 ボパール 21000
    SELECT *
     FROM CUSTOMERS
     ORDER BY NAME DESC; 

    上記のクエリは、NAME列に基づいて、テーブル内のすべてのレコードを降順で並べ替えます。

    出力:

    ID 名前 年齢 アドレス 給与
    2 シヴァティワリ 22 ボパール 21000
    4 Ritesh yadav 36 アザンガル 26000
    6 マヘーシュシャルマ 26 マトゥラ 22000
    1 ヒマニグプタ 21 モディナガー 22000
    5 Balwant singh 45 バラナシ 36000
    3 Ajeet bhargav 45 メーラト 65000

    SQLORDERBY句にはさまざまなトピックがあります。つまり、次のとおりです。

    • ASCによるSQLの注文 –データを昇順で並べ替えます
    • SQL ORDER BY DESC –データを降順で並べ替えます
    • ランダムによるSQLの順序 –ランダムデータを並べ替えます
    • SQL ORDER BY LIMIT –データベースから限られたデータを選択します
    • 複数の列によるSQLの順序– 複数の列に基づいてデータを並べ替えます。

    それぞれについて詳しく説明しましょう。

    SQL ORDER BY ASC

    ASCによるSQLORDER 句は、いくつかの列に基づいてデータを昇順で並べ替えます。通常、デフォルトの並べ替え順序は昇順です。

    例:

    次の顧客について考えてみましょう。 テーブル。

    ID 名前 年齢 アドレス 給与
    1 ヒマニグプタ 21 モディナガー 22000
    2 シヴァティワリ 22 ボパール 21000
    3 Ajeet bhargav 45 メーラト 65000
    4 Ritesh yadav 36 アザンガル 26000
    5 Balwant singh 45 バラナシ 36000
    6 マヘーシュシャルマ 26 マトゥラ 22000
     SELECT * 
     FROM Customers
     ORDER BY NAME, SALARY; 

    上記のクエリは、NAME列とSALARY列に基づいてすべてのレコードを昇順で並べ替えます。

    出力:

    ID 名前 年齢 アドレス 給与
    3 Ajeet bhargav 45 メーラト 65000
    5 Balwant singh 45 バラナシ 36000
    1 ヒマニグプタ 21 モディナガー 22000
    6 マヘーシュシャルマ 26 マトゥラ 22000
    4 Ritesh yadav 36 アザンガル 26000
    2 シヴァティワリ 22 ボパール 21000

    SQL ORDER BY DESC

    SQL ORDER BY DESC句は、いくつかの列に基づいてデータを降順で並べ替えます。

    例:

    次の顧客について考えてみましょう。 テーブル。

    ID 名前 年齢 アドレス 給与
    1 ヒマニグプタ 21 モディナガー 22000
    2 シヴァティワリ 22 ボパール 21000
    3 Ajeet bhargav 45 メーラト 65000
    4 Ritesh yadav 36 アザンガル 26000
    5 Balwant singh 45 バラナシ 36000
    6 マヘーシュシャルマ 26 マトゥラ 22000
    SELECT *
     FROM CUSTOMERS
     ORDER BY NAME DESC; 

    上記のクエリは、NAME列に基づいて、テーブル内のすべてのレコードを降順で並べ替えます。

    出力:

    ID 名前 年齢 アドレス 給与
    2 シヴァティワリ 22 ボパール 21000
    4 Ritesh yadav 36 アザンガル 26000
    6 マヘーシュシャルマ 26 マトゥラ 22000
    1 ヒマニグプタ 21 モディナガー 22000
    5 Balwant singh 45 バラナシ 36000
    3 Ajeet bhargav 45 メーラト 65000

    SQL ORDER BY LIMIT

    SQL ORDER BY LIMIT句は、データベーステーブルから特定の数のレコードを取得するのに役立ちます。これは通常、特定の条件を満たすタプルが多数ある状況で使用されます。取得するレコード数の上限を設定します。

    SQLでLIMIT句を使用するには、 ROWNUMを使用する必要があります 条項付き。

    注:LIMIT句はすべてのSQLバージョンでサポートされているわけではないことに注意してください。

    この句は、 SQL 2008 OFFSETを使用して指定できます。 またはFETCHFIRST句

    例:

    次の学生について考えてみましょう。 テーブル。

    RollNo 名前 グレード
    12001 Aditya 9
    12002 サヒル 6
    12003 ヘマ 8
    12004 ロビン 9
    12005 シタ 7
    12006 アン 10
    12007 ユスフ 7
    12008 アレックス 5
    SELECT *
     FROM Student
     LIMIT 5; 

    上記のクエリは、Studentテーブルから上位5人の学生のみを返します。

    出力:

    12001 Aditya 9
    12002 サヒル 6
    12003 ヘマ 8
    12004 ロビン 9
    12005 シタ 7

    LIMIT句はORDERBY句と一緒に使用することもできます。

    SELECT *
     FROM Student
     ORDER BY Grade DESC
     LIMIT 3; 

    上記のクエリは、成績が最も高い上位3人の生徒を降順で返します。

    出力:

    12006 アン 10
    12001 Aditya 9
    12004 ロビン 9

    LIMIT演算子は、条件ステートメントを使用せずに制限されたデータを取得する必要がある状況で特に役立ちます。

    LIMIT演算子はOFFSET演算子と一緒に使用することもできます。

    オフセット付きの制限

    OFFSET値はゼロより大きい必要があることに注意してください 、および負の値にすることはできません。負の値を指定すると、エラーが返されます。

    例:

    同じStudentテーブルについて考えてみましょう。

    RollNo 名前 グレード
    12001 Aditya 9
    12002 サヒル 6
    12003 ヘマ 8
    12004 ロビン 9
    12005 シタ 7
    12006 アン 10
    12007 ユスフ 7
    12008 アレックス 5
    SELECT *
    FROM Student
    LIMIT 5 OFFSET 2
    ORDER BY RollNo;

    このクエリは、上位2つのエントリを除くStudentテーブルの上位5つのレコードを返します。

    出力:

    RollNo 名前 グレード
    12003 ヘマ 8
    12004 ロビン 9
    12005 シタ 7
    12006 アン 10
    12007 ユスフ 7

    すべて制限

    LIMIT ALLとして知られるLIMITに似た別の句があります 。 LIMIT ALL句は制限を設けず、テーブルのすべてのエントリを返します。

    例:

    同じStudentテーブルをもう一度考えてみましょう。

    RollNo 名前 グレード
    12001 Aditya 9
    12002 サヒル 6
    12003 ヘマ 8
    12004 ロビン 9
    12005 シタ 7
    12006 アン 10
    12007 ユスフ 7
    12008 アレックス 5

    クエリ:

    SELECT *
    FROM Student
    LIMIT ALL;
    RollNo 名前 グレード
    12001 Aditya 9
    12002 サヒル 6
    12003 ヘマ 8
    12004 ロビン 9
    12005 シタ 7
    12006 アン 10
    12007 ユスフ 7
    12008 アレックス 5

    SQLORDERBY複数の列

    複数の列によるSQLORDER クエリで指定された複数の列を使用して並べ替えることにより、列のデータエントリを返します。

    ORDERBY句の後に指定された列名の順序に基づいてデータをソートします。列の名前は、ユーザーが並べ替えを実行したい対応する順序で追加する必要があります。

    複数の列名は、コンマ(、)を使用して区切ることで追加できます。また、ASCまたはDESCキーワードを使用して、並べ替えの順序を指定できます。

    例:

    次の従業員について考えてみましょう id、first_name、last_name、salaryの4つの列を持つテーブル。

    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; 

    出力:

    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

    したがって、最初に、出力は給与の降順でソートされ、次に姓の昇順でソートされています。 ASCまたはDESCが言及されていない場合、デフォルトでは、両方の列が昇順で並べ替えられることに注意してください。

    結論

    したがって、上記は、データベースに対して特定の操作を実行し、データを取得するために開発者が毎日使用する、最も重要で頻繁に使用されるORDERBY句の一部です。これらの句は、個別に使用することも、データベース操作を実行するために組み合わせて使用​​することもできます。


    1. 単一のクエリを使用して複数のテーブル列の値を更新する

    2. SQL Azureデータベースをローカル開発サーバーにコピーするにはどうすればよいですか?

    3. OracleでPL/SQLからの出力をフラッシュする方法はありますか?

    4. 読み取る行の推定数