見出し画像

第5回 取得したデータを並び替える

こんにちは。
今回は取得したデータを並べ替えます。
たかが並べ替え、されど並べ替え。簡単に実行できるのにめちゃめちゃ使えるスグレモノです。

第2回で作った和菓子テーブル↓

CREATE TABLE wagashi
(
No INT NOT NULL PRIMARY KEY,
name VARCHAR (50),
bunrui VARCHAR (50),
konyuubi DATE,
kakaku VARCHAR (10)
)

第3回でインサートした和菓子データ↓

INSERT INTO wagashi/*入れたいテーブル名*/
VALUES
(1,'Sakuramochi'/*桜餅*/,'mochi'/*餅*/,'2020/04/01','100yen'),
(2,'Wakaayu'/*若鮎*/,'mochi'/*餅*/,'2020/04/15','200yen'),
(3,'Oshiruko'/*お汁粉*/,'anko'/*あんこ*/,'2019/11/12','100yen'),
(4,'Mitarashidango'/*みたらし団子*/,'dango'/*団子*/,'2020/1/20','100yen'),
(5,'Dorayaki'/*どら焼き*/,'anko'/*あんこ*/,'2020/2/7','300yen')

このデータを並べ替えます。


1.昇順(ORDER BY [カラム名] ASC)

まずは昇順。今回は価格昇順にしてみました。なんとなく。

SELECT  *
FROM    wagashi /*テーブル名*/
ORDER BY kakaku /*カラム名*/

F5で実行。

画像1

価格が安い(小さい)順になってます。
ORDER BYを使うと並べ替えができます。
ちなみに、【ORDER BY [カラム名] ASC】 と書いても同じ結果になります。

SELECT  *
FROM    wagashi /*テーブル名*/
ORDER BY kakaku ASC /*カラム名*/

画像2

ASCascending order)は昇順を意味する言葉なんだとか。
でも省略可能なので入れなくてもOKです。

2.降順(ORDER BY [カラム名] DESC)

次は価格降順(値段の高い順)で並べ替えます。
といっても、一言追加するだけ。

SELECT  *
FROM    wagashi /*テーブル名*/
ORDER BY kakaku DESC /*カラム名*/

F5実行。

画像3

【ORDER BY [カラム名] DESC】。
DESCdescending order)入れると降順になります。


3.昇順/降順を組み合わせる

たとえば価格昇順(安い順)で、購入日降順(新しい順)にしたいとき。

SELECT  *
FROM    wagashi /*テーブル名*/
ORDER BY kakaku,konyuubi DESC /*カラム名*/

F5実行。

画像4

ORDER BYの後に好きなカラム名をいれて( , )で区切るだけ。
先に入れたものが優先されます。
今回の場合はまず価格順、価格が同じだったら日付順 のような感じ。


4.TOP○を持ってくる(TOP [数字])

タイトルまんまです。
サンプルで価格高いやつ(降順)ランキング1位~3位を表示します。

SELECT  TOP 3 *
FROM    wagashi /*テーブル名*/
ORDER BY kakaku DESC /*カラム名*/

F5実行。

画像5

【SELECT TOP ○ *】SELECTと*の間にTOP数字 を入れるだけです。
もちろん昇順/降順を組み合わせられます。
たとえば価格高い順(降順)、購入日が古い順(昇順)のTOP4の場合は

SELECT  TOP 4 *
FROM    wagashi /*テーブル名*/
ORDER BY kakaku DESC,konyuubi /*カラム名*/

画像6

こんな感じ。


おわりに

いかがでしょう。
簡単な割にめちゃめちゃ使い道が多そうですね。

どこかの回で触れたかもしれませんが。
たとえば好きな作品のキャラクターでテーブルを作ったとして、
登場回数、身長、年齢、趣味、誕生日とか適宜登録したとします。
身長高いやつTOP3が、年齢若い奴TOP5が、誕生日順並べ替えが、登場回数の多さ順並べ替えが、一瞬でできるんですよ。すごくないですか???
これに気がついたとき、並べ替えって実は一番すごいやつなんじゃ...?と思いました。奥が深いぞ並べ替え。勝手に感心してるだけですけどね。


参考(順不同)
昇順と降順の違いと覚え方、順序イメージ
クエリーの結果を並べ替える
SQL SELECT基礎(3) その場で表を作る ※今回の記事作成にはあまり関係ない内容の記事です


この記事が気に入ったらサポートをしてみませんか?