SQL Server

SQL Server ポケモンのデータで学ぶSQL ORDER BY句を使ってみよう。ポケモンを速い順に並べる方法。

今回のテーマ

こんにちは、かっぱちゃんです。

今回は下記の記事の続きです。一通りWHERE句の使い方について触れたので、今回はORDER BY句について学びましょう!

こちらもCHECK

SQL Server ポケモンのデータで学ぶSQL WHERE句で色々な条件を抽出してみよう BETWEEN句とIN句

今回のテーマContents1 今回のテーマ2 BETWEEN句3 IN句4 まとめ こんにちは、かっぱちゃんです。 今回は下記の記事の続きで、WHERE句の条件指定についてです。今回はBETWEEN ...

続きを見る

ポケモンデータのダウンロードは下記の記事からお願いします。

こちらもCHECK

SQL Server ポケモンのデータで学ぶSQL データの準備編

今回のテーマContents1 今回のテーマ2 ポケモンデータのダウンロード3 Sql Server Management Studioでの設定4 ポケモンデータのテーブルについて5 各テーブルの属性 ...

続きを見る

並べ替え場合は基本的にORDER BY句を使用するので、使い方をばっちりと覚えちゃってください!!

それでは、早速やっていきましょう!

KappaChan
色々な条件で抽出したいかっぱ!

GROUP BY句の使い方

かっぱちゃんが下記のように悩んでいます。

KappaChan
WHERE句で条件を絞ることは出来るようになったけど、すばやさが速い順に並べたいかっぱ!

相変わらずかっぱちゃんはすばやさの種族値に拘っているようです。

確かに下記のSQLのようにすばやさ100以上で抽出してみると、すばやさに関係なく図鑑の順番で表示されてしまいます。

 出力結果
ポケモン名 すばやさ
リザードン 100
ピジョット 101
オニドリル 100
ライチュウ 110
キュウコン 100
ダグトリオ 120
ペルシアン 115
ユンゲラー 105
フーディン 120
ドククラゲ 100
ギャロップ 105
ドードリオ 110
ゲンガー 110
ビリリダマ 100
マルマイン 150
スターミー 115
ストライク 105
エレブー 105
ケンタロス 110
サンダース 130
プテラ 130
サンダー 100
ミュウツー 130
ミュウ 100
バクフーン 100
クロバット 130
ワタッコ 110
エーフィ 110
ニューラ 115
ミルタンク 100
ライコウ 115
エンテイ 100
ルギア 110
セレビィ 100

この結果では、かっぱちゃんの言う通り、比較することが難しいかもしれませんね。

今回の要望のように、指定した項目で順番を入れ替えたい時に使用するのが、ORDER BY句です。

早速、ORDER BY句の使い方をみてみましょう!

 出力結果
ポケモン名 すばやさ
マルマイン 150
サンダース 130
プテラ 130
ミュウツー 130
クロバット 130
ダグトリオ 120
フーディン 120
ペルシアン 115
スターミー 115
ニューラ 115
ライコウ 115
ルギア 110
ケンタロス 110
ワタッコ 110
エーフィ 110
ドードリオ 110
ゲンガー 110
ライチュウ 110
ユンゲラー 105
ギャロップ 105
ストライク 105
エレブー 105
ピジョット 101
オニドリル 100
キュウコン 100
ドククラゲ 100
リザードン 100
ビリリダマ 100
ミルタンク 100
ミュウ 100
バクフーン 100
サンダー 100
セレビィ 100
エンテイ 100

すばやさが速いポケモン順に出力できました。

WHERE句の下のORDER BY句を追加しています。

ORDER BY句の書き方のポイントを下記に記述します。

「ORDER BY 項目」と書くことでその項目の順番通りに結果が表示される。

「ORDER BY 項目」の後に「DESC」か「ASC」と記載することで、降順か昇順が決まる。

「ASC」は省略可能。

続けて、昇順で出力してみましょう。

 出力結果
ポケモン名 すばやさ
リザードン 100
オニドリル 100
キュウコン 100
ドククラゲ 100
ビリリダマ 100
サンダー 100
ミュウ 100
バクフーン 100
ミルタンク 100
エンテイ 100
セレビィ 100
ピジョット 101
ユンゲラー 105
ギャロップ 105
ストライク 105
エレブー 105
ケンタロス 110
ルギア 110
ワタッコ 110
エーフィ 110
ドードリオ 110
ゲンガー 110
ライチュウ 110
ペルシアン 115
スターミー 115
ニューラ 115
ライコウ 115
フーディン 120
ダグトリオ 120
サンダース 130
プテラ 130
クロバット 130
ミュウツー 130
マルマイン 150

すばやさが遅い順で出力されましたね。「ASC」は省略可能なので、省略したとしても同じ結果が表示されます。

 出力結果
SELECT ポケモン名,すばやさ FROM Pokemon
WHERE すばやさ >= 100
ORDER BY すばやさ
KappaChan
すばやさが速い順に出力できたかっぱ!!!

SQLServerの他の記事はこちら

C#のエンジニアであれば、絶対買ってほしい本2選

C#の初心者にオススメ!基本はこの本で抑えよう!


Linqの使い方が沢山載っている。中級者以上の方にオススメ!

GROUP BY句で複数項目を指定する。

かっぱちゃんはすばやさだけでは物足らず、下記のように呟いています。

KappaChan
すばやさが早くとくこうが高いポケモン順に出力させたいかっぱ!

特殊アタッカーをまだ考えているみたいです。ORDER BY句を使用してすばやさととくこう順の項目も指定してみましょう。

 出力結果
ポケモン名 すばやさ とくこう
マルマイン 150 80
ミュウツー 130 154
サンダース 130 110
クロバット 130 70
プテラ 130 60
フーディン 120 135
ダグトリオ 120 50
ライコウ 115 115
スターミー 115 100
ペルシアン 115 65
ニューラ 115 35
エーフィ 110 130
ゲンガー 110 130
ライチュウ 110 90
ルギア 110 90
ドードリオ 110 60
ワタッコ 110 55
ケンタロス 110 40
ユンゲラー 105 120
エレブー 105 95
ギャロップ 105 80
ストライク 105 55
ピジョット 101 70
サンダー 100 125
バクフーン 100 109
リザードン 100 109
ミュウ 100 100
セレビィ 100 100
エンテイ 100 90
キュウコン 100 81
ドククラゲ 100 80
オニドリル 100 61
ビリリダマ 100 55
ミルタンク 100 40

130族のポケモン達を見てみてください。同じすばやさの中でとくこう順に並べられていますね。

複数指定する場合は「ORDER BY 項目1,項目2」のように指定する。

並べかえは左に書いた項目順に並べられる。

各項目で昇順、降順を指定することが可能。

ORDER BY句の並べ替える項目をとくこう、すばやさの順にしてみましょう。

 出力結果
ポケモン名 とくこう すばやさ
ミュウツー 154 130
フーディン 135 120
ゲンガー 130 110
エーフィ 130 110
サンダー 125 100
ユンゲラー 120 105
ライコウ 115 115
サンダース 110 130
バクフーン 109 100
リザードン 109 100
スターミー 100 115
ミュウ 100 100
セレビィ 100 100
エレブー 95 105
ライチュウ 90 110
ルギア 90 110
エンテイ 90 100
キュウコン 81 100
マルマイン 80 150
ギャロップ 80 105
ドククラゲ 80 100
クロバット 70 130
ピジョット 70 101
ペルシアン 65 115
オニドリル 61 100
プテラ 60 130
ドードリオ 60 110
ワタッコ 55 110
ストライク 55 105
ビリリダマ 55 100
ダグトリオ 50 120
ケンタロス 40 110
ミルタンク 40 100
ニューラ 35 115

先ほどの並べ替え順と変わりましたね。

とくこうが高い順に並び替えられて、同じとくこうの種族値だった場合はすばやさが速い順に並べられているのが分かります。

「ASC」を指定または省略すると、低い順に並び変えられます。今回の例ではどちらとも省略してみました。

 出力結果
ポケモン名 とくこう すばやさ
ニューラ 35 115
ミルタンク 40 100
ケンタロス 40 110
ダグトリオ 50 120
ビリリダマ 55 100
ストライク 55 105
ワタッコ 55 110
ドードリオ 60 110
プテラ 60 130
オニドリル 61 100
ペルシアン 65 115
ピジョット 70 101
クロバット 70 130
ドククラゲ 80 100
ギャロップ 80 105
マルマイン 80 150
キュウコン 81 100
エンテイ 90 100
ルギア 90 110
ライチュウ 90 110
エレブー 95 105
セレビィ 100 100
ミュウ 100 100
スターミー 100 115
リザードン 109 100
バクフーン 109 100
サンダース 110 130
ライコウ 115 115
ユンゲラー 120 105
サンダー 125 100
エーフィ 130 110
ゲンガー 130 110
フーディン 135 120
ミュウツー 154 130
KappaChan
並び替え方法をマスターしたかっぱ!

まとめ

今回は出力結果の並び替え方について学びました。下記にもう一度ポイントだけ書いておきます。

「ORDER BY 項目」と書くことでその項目の順番通りに結果が表示される。

「ORDER BY 項目」の後に「DESC」か「ASC」と記載することで、降順か昇順が決まる。

「ASC」は省略可能。

複数指定する場合は「ORDER BY 項目1,項目2」のように指定する。

並べかえは左に書いた項目順に並べられる。

各項目で昇順、降順を指定することが可能。

ORDER BY句はSQLの中で当たり前のように使う構文なので、ぜひ覚えてください。

それでは、最後まで見て頂き有難うございました。

KappaChan
最後までみてくれて、ありがとうかっぱ!!

SQLServerの他の記事はこちら

 

プログラミング能力を上げたい方は是非オンラインのプログラミング教室も検討してみてくださいね!!

一人で独学をするよりもプロからオンラインでプログラミングを教えてもらった方が10倍は効率いいです!!

私が厳選したオススメのオンライン教室を貼っておきます!!どちら共、エンジニアとしての就職までサポートしてくれる素晴らしい教室です。キャリアなどの個別相談は無料ですよ!!

申し込みは完全無料!未経験でITエンジニアを目指したい方にオススメ!

Webエンジニアになりたい方にオススメ!個別相談は無料!

KappaChan
オンラインのプログラミング教室は本当にオススメかっぱ!!

-SQL Server

X