SQLite Order By

SQLite のORDER BY句は、1つまたは複数の列に基づいて、データを昇順または降順に並べるために使用されます。

構文

ORDER BY 句の基本構文は次のとおりです:

SELECT column-list 
FROM table_name 
[WHERE condition] 
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
  • ASCデフォルトは、小さいものから大きいものへ、昇順に並べます。
  • DESC大きいものから小さいものへ、降順に並べます。

ORDER BY 句では複数の列を使用できます。使用する並べ替え列が列リストに含まれていることを確認してください:

SELECT
   select_list
FROM
   table
ORDER BY
    column_1 ASC,
    column_2 DESC;

column_1 と column_2 の後に並べ替え規則を指定しない場合、デフォルトは ASC 昇順です。上記の文は column_1 の昇順、column_2 の降順で読み取られ、次の文と同等です:

SELECT
   select_list
FROM
   table
ORDER BY
    column_1,
    column_2 DESC;

例

COMPANY テーブルに次のレコードがあるとします:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

次は、結果を SALARY の昇順で並べ替える例です:

sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC;

これにより、次の結果が生成されます:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
7           James       24          Houston     10000.0
2           Allen       25          Texas       15000.0
1           Paul        32          California  20000.0
3           Teddy       23          Norway      20000.0
6           Kim         22          South-Hall  45000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

次は、結果を NAME と SALARY の昇順で並べ替える例です:

sqlite> SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;

これにより、次の結果が生成されます:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
5           David       27          Texas       85000.0
7           James       24          Houston     10000.0
6           Kim         22          South-Hall  45000.0
4           Mark        25          Rich-Mond   65000.0
1           Paul        32          California  20000.0
3           Teddy       23          Norway      20000.0

次は、結果を NAME の降順で並べ替える例です:

sqlite> SELECT * FROM COMPANY ORDER BY NAME DESC;

これにより、次の結果が生成されます:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
3           Teddy       23          Norway      20000.0
1           Paul        32          California  20000.0
4           Mark        25          Rich-Mond   65000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0
5           David       27          Texas       85000.0
2           Allen       25          Texas       15000.0
その他の拡張