t-SQLで2列をソートする方法について
データベースの操作において、特定の順序でデータを整列させることはよくあります。この記事では、t-SQLを使用して2列をソートする方法について詳しく解説します。
ORDER BY構文の使い方
t-SQLでデータをソートするには、ORDER BY
句を使用します。ORDER BY
句は、SELECT文の最後に指定し、指定した列の値に基づいて結果セットを並び替えます。
SELECT 列1, 列2, ...
FROM テーブル名
ORDER BY 列名;
この基本的な形を覚えておけば、必要に応じて他のオプションを追加することができます。
例:
以下の例では、employees
テーブルから従業員の名前(last_name
列)をアルファベット順に取得します。
SELECT first_name, last_name
FROM employees
ORDER BY last_name;
2列を同時にソートする方法
1列だけではなく、複数列を使用してソートすることも可能です。これを行うためには、ORDER BY
句に複数の列をカンマで区切って記述します。
SELECT 列1, 列2, ...
FROM テーブル名
ORDER BY 列1, 列2;
例:
次の例では、employees
テーブルの従業員情報を、まず部署番号(department_id
列)で昇順に並び替え、その後に名前(last_name
列)で昇順に並び替えます。
SELECT first_name, last_name, department_id
FROM employees
ORDER BY department_id, last_name;
このクエリは、最初に部署番号でソートし、同じ部署番号内でさらに名前順にソートされた結果を返します。
優先されるソートは最初に書かれた方?後に書かれた方?
ORDER BY
句に複数の列を指定した場合、最初に指定された列が最優先されます。つまり、最初の列に基づいてデータをソートし、次いで同じ値を持つ行に対して2番目の列でソートします。
例:
SELECT first_name, last_name, department_id, salary
FROM employees
ORDER BY department_id ASC, salary DESC;
この場合、従業員データは最初にdepartment_id
で昇順にソートされ、各部署内では給与(salary
)が降順にソートされます。
- department_idが最優先ソートキー:同じ
department_id
の行がグループ化されます。 - salaryが次点のソートキー:同じ部署内では給与が高い順に並びます。
ASC(昇順)やDESC(降順)を使用して、各列のソート順を指定することも可能です。
まとめ
t-SQLのORDER BY
句を使うことにより、データを指定した順序で簡単に並び替えることができます。1列だけでなく、複数列を組み合わせることで、柔軟かつ細かい順序付けが可能です。以下のポイントを押さえましょう:
ORDER BY
句を使用してデータをソートします。- 複数列を指定する場合、カンマで区切って列を並べます。
- 最初に指定した列が優先的にソートされ、次に指定した列が補助的にソートされます。
- 昇順(ASC)や降順(DESC)を明示的に指定することができます。
これらの基本的な使い方を理解すれば、t-SQLでのデータソートがスムーズに行えるようになるでしょう。
コメント