【初学者必見!】SQLの基本、実務使用例を徹底解説!ORDER BY編

サムネイル SQL

※この記事にはプロモーションが含まれています。

ふりかえり

筆者
筆者

本記事は、SQLの基本、実務使用例編になります。

SQLの基礎に関しましては、

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

本編に入ります!

order byの基本構文

筆者
筆者

まずは、基本構文から見ていきましょう!

SELECT 列名1, 列名2, ... 
FROM テーブル名
ORDER BY 並び替えたい列名 [ASC | DESC];

A子
A子

order by にASCかDESCがつくのかな。

筆者
筆者

はい、そうです!

ORDER BY は、データの並び順を指定するためのSQLの句 です。データを昇順 (ASC) または降順 (DESC) に並び替えることができます。

ASC(Ascending:昇順)→ 小さい順・古い順・A→Z

DESC(Descending:降順)→ 大きい順・新しい順・Z→A

ASC は省略可能(デフォルトで昇順)

数値データを並び替える場合はそのままでOK

文字列データの並び替えは 辞書順(アルファベット・あいうえお順) になる

実務レベルの使用例を見ていこう!

筆者
筆者

実際に、SQLを使用してデータを確認していきましょう。

SQLに関しては以下を使用して解説していきます。

create table文、select文、insert文、update文、delete文、

drop table文、につきましては、過去にアップロードした

【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

A子
A子

目次の、「ふりかえり」のところにそれぞれの記事のリンクが

貼ってあるよ!

または、サイドバーのカテゴリーにSQLがあるから、そちらからでも

参照できます!

[事前準備]今回、実行するSQLの一覧

-- 申請管理情報テーブルの作成
create table 申請管理情報 (
    STAFF_NO varchar2(10) not null,   -- 職員番号 (Staff Number) 
    APPLI_NO varchar2(10) not null,   -- 申請番号 (Application Number) 
    AGE varchar2(3),                  -- 年齢 (Age)
    COMMUTING  varchar2(2),           -- 通勤時間(Commuting)
    MONEY varchar2(5),                -- 金額(Money)
    constraint PK_申請管理情報 primary key (STAFF_NO, APPLI_NO)
);

insert into 申請管理情報 (STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY) 
values ('1001', 'A001', '20','1','500');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY) 
values ('1002', 'A002', '30','2','1000');
insert into 申請管理情報 (STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY) 
values ('1003', 'A003', '100','3','1500'); 
insert into 申請管理情報 (STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY) 
values ('1004', 'A004', '30','2','800');

年齢 (AGE) の昇順で並び替え

select STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY 
from 申請管理情報 
order by to_number(AGE) asc;

to_number(AGE) によって AGE を数値型として扱い、昇順(asc)で並び替えます。

小さい年齢順に並ぶので、以下の順番になります。

金額 (MONEY) の降順で並び替え

select STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY 
from 申請管理情報 
order by to_number(MONEY) desc;

to_number(MONEY)MONEY を数値型に変換し、降順(desc)で並び替えます。

大きい金額順に並ぶので、以下の順番になります。

通勤時間 (COMMUTING) の昇順 + 金額 (MONEY) の降順

select STAFF_NO, APPLI_NO, AGE, COMMUTING, MONEY 
from 申請管理情報 
order by to_number(COMMUTING) asc, to_number(MONEY) desc;

COMMUTING を昇順(asc)、COMMUTING が同じ場合は MONEY を降順(desc)に並び替えます。 COMMUTING が短い人が優先され、同じ場合は MONEY が多い順に並びます。

まとめ

筆者
筆者

order byについて解説しました。

order by を使うと、データを見やすく整理できます。今回のように varchar2 型の数値データをソートする場合は to_number() を使うのを忘れないようにしましょう。

基本の asc(昇順)と desc(降順)を組み合わせることで、様々な順番に並び替えができますので、用途に応じて活用してみてください。

次回もお楽しみに!

この記事を書いた人
たくたく

文系出身・3年目のWeb系エンジニアです。
C#とSQLを得意としています。
同棲生活は2年目に入り、日々仲良く楽しく暮らしています。
プライベートではバイクや車で旅行に行くことが趣味です。
サンリオ好きで、中でもシナモン推しです。
お酒好きとして毎週の晩酌をリラックスタイムにしています。

たくたくをフォローする
SQLエンジニア
シェアする

コメント

タイトルとURLをコピーしました