Microsoft Access Club >SQL入門講座 >このページ >次頁 < 前項  サイト内検索
 

レコードの並び替え - ORDER BY句 : SQL入門講座



レコードの並び替え・・・、降順、昇順と該当レコードを並び替えると視認性が高まります。
ここでは、テーブルからSQLを用いてクエリを作成する方法をご紹介します。これ以外に、並び替えたレコードを元に新規テーブルを作成する方法がありますが、ここでは取り上げません。

レコードの並び替え - ORDER BY句

SQLを用いてテーブルレコードを降順、または昇順で並び替える(作成したクエリ内)には、SELECTステートメント に ORDER句 を用いて行います。

サンプルテーブル(出張管理)は以下のものを予定しています。

ID 社員名 出発日 帰社日 目的地 旅費額
2 橘 修平 2004/07/04 2004/07/05 京都支店 \28,400
4 柴田 喜一 2004/07/17 2004/07/21 東京支店 \78,310
1 正道 良一 2004/07/02 2004/07/05 広島支店 \56,720
3 田中 邦子 2004/07/10 2004/07/15 福井支店、石川支店 \98,200
昇順と降順

昇順に並び替えるときは、以下の記述を行います。なお、ASCは省略できます。OEDER BY句で昇順、降順を指定しなかったときは、全て昇順の設定になります(既定値)。

  • ORDER BY フィールド名 ASC

降順に並び替えるときは、以下の記述を行います。

  • ORDER BY フィールド名 DESC
サンプル構文

サンプルテーブルを用いて、「旅費額」フィールドの値を降順で並び替えます。

  • SELECT * FROM 出張管理 ORDER BY 旅費額 DESC;

「出発日」フィールドの値を昇順で並び替えます。

  • SELECT * FROM 出張管理 ORDER BY 出発日 ASC;

「出発日」が7月10日以降のレコードを「ID」の昇順で並び替えます。

  • SELECT * FROM 出張管理 WHERE 出発日 >= #2004/07/10# ORDER BY ID ASC
留意点
  • テーブルレコードから抽出したレコードを並び替える場合は、 WHERE [抽出するフィールド名] ORDER BY [並び替えるフィールド名] ASC(DESC) の構文を記述します。
ADOXを用いた事例

ADOXを用いてQ_sampleクエリを作成し開きます。最後に、該当のクエリを削除します。

Sub MySQLOrderBy()
On Error GoTo エラー

    Dim cat As ADOX.Catalog
    Dim cmd As ADODB.Command
    
    'カレントデータベースに接続します。
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = CurrentProject.Connection
    
    'クエリを定義します。
    Set cmd = New ADODB.Command
    cmd.CommandText = "SELECT * FROM 出張管理 ORDER BY 旅費額 DESC;"

    cat.Procedures.Append "Q_sample", cmd '選択クエリを作成します。
    DoCmd.OpenQuery "Q_Sample" ' クエリを開きます。
    
    Set cmd = Nothing
    Set cat = Nothing
    
    Exit Sub
    
エラー:
    
    If Err.Number = -2147217816 Then
        cat.Views.Delete "Q_sample"
        Resume
    Else
        MsgBox Err.Number & " : " & Err.Description
    End If
End Sub
留意点
  • VBA内でSQLを用いる場合は、前後をダブルクォーション(")で囲みます。
  • 同名のクエリが既に存在しているとエラーになるので、エラーコード-2147217816が返されたら該当のクエリを削除します。
結果

下記のようにクエリが開きます。

クエリで作成

このSQLをクエリで作成すると、下記のようになります。

2004/08/13

ページの先頭へ 前ページへ戻る

 


レコードの並び替え - ORDER BY句 : SQL入門講座


-Microsoft Access Club-

アダルト・ゲーム配信可能なPLESKパネル付属の専用・共有レンタルサーバーを提供しています。
アダルトやゲーム配信が可能です。
全専用/共有レンタルサーバーにPLESKパネルをインストール済み。