SQLの書き方4 ORDER BY 並べ替え
前回はINNER JOINの説明を行いましたので今回は並べ替えを行うSQL文の書き方を説明していきます。
ORDER BY
レコードの並べ替えは「ORDER BY」を使用します。

Accessのクエリで使用する並べ替えと同様です。
SELECT フィールド名 FROM テーブル名 ORDER BY フィールド名 並べ替え順序
例 (前回のINNER JOINで使用したSQL文にORDER BYを追加します)
SQL = “SELECT T_社員マスタ2013.*, T_性別マスタ.* ” _
& “FROM T_社員マスタ2013 INNER JOIN T_性別マスタ ” _
& “ON T_社員マスタ2013.性別コード = T_性別マスタ.性別コード ” _
& “WHERE T_社員マスタ2013.性別コード=’0′ ” _
& “ORDER BY T_社員マスタ2013.社員コード ASC”
このSQLを実行すると、抽出結果を「社員コード」の昇順(ASC)で並べてくれます。また、降順で並べ替えたい場合は「DESC」と記述します。これらの記述を省略した場合は昇順で並べ替えられます。
では実際にプログラムを作成してみましょう。
(使用するフォームはSQLの書き方1と同じものを使用しています。)
ORDER BYを使用したプログラム例
Private Sub コマンド0_Click()
Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset
Dim SQL As String
Set CN = CurrentProject.Connection
Set RS = New ADODB.Recordset
SQL = “SELECT T_社員マスタ2013.*, T_性別マスタ.* ” _
& “FROM T_社員マスタ2013 INNER JOIN T_性別マスタ ” _
& “ON T_社員マスタ2013.性別コード = T_性別マスタ.性別コード ” _
& “WHERE T_社員マスタ2013.性別コード=’0′ ” _
& “ORDER BY T_社員マスタ2013.社員コード ASC”
RS.Open SQL, CN, adOpenStatic, adLockOptimistic
If RS.EOF = False Then
Do Until RS.EOF
Debug.Print RS!社員コード & RS!名前 & RS!性別
RS.MoveNext
Loop
End If
RS.Close: Set RS = Nothing
CN.Close: Set CN = Nothing
End Sub
前回と同様に「イミディエイトウィンドウ」に抽出結果を表示します。
いかがでしょうか?
今回は「ORDER BY」を使用して、レコードの並べ替えを行いました。