ふりかえり

本記事は、SQLの基本、実務使用例編になります。
SQLの基礎に関しましては、
【初学者必見!】SQLの超基礎編の記事をご覧くださいませ。

本編に入ります!
order byの基本構文

まずは、基本構文から見ていきましょう!
SELECT 列名1, 列名2, ...
FROM テーブル名
ORDER BY 並び替えたい列名 [ASC | DESC];

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の超基礎編の記事をご覧くださいませ。

目次の、「ふりかえり」のところにそれぞれの記事のリンクが
貼ってあるよ!
または、サイドバーのカテゴリーに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(降順)を組み合わせることで、様々な順番に並び替えができますので、用途に応じて活用してみてください。
次回もお楽しみに!










コメント