step07 『order by』で並び替え
◇
放課後、僕はメルハートと書棚の森を進んでいた。
古いインクと朽ちた木の匂い。天井まで届く棚に積まれているのは、古い百科事典や神話体系。二人でそんな狭い迷路を、迷い子のように歩く。
「今日は利用者が多いのね」
「テストも近いからかなぁ?」
昨日は座り放題だった学習席は、何処も埋まっていた。
夏休みも近いので、いろいろと宿題や課題が出て、みんな大変なのだろう。そういう僕らも宿題はあるわけで、まずはそれを片付けたい。
「ウィズ、こっち」
メルハートが、ちょんと僕のシャツの袖を引く。
今日は二人きりとはいかないけれど、図書館の奥には、秘密の隠れ家のような学習席がいくつかあり、空いているテーブルを見つけた。
窓の近くの席で、カーテンを揺らす風が心地よさそう。
日差しは少し傾いて、レース越しの淡い光がテーブルの上で揺れている。
「ここにしましょ」
「うん」
僕とメルハートは、小さな丸い学習席に6時と10時の位置に椅子をずらして、腰掛けた。
今日の魔法の勉強の前に、まずは「王国公用語」と「算術」の宿題を片付けることにする。二人で分担してやっちゃえば、こんなのは簡単だ。夏休みも近いことだし、少しでも進めておこう。
「ところでさメル。……サーヴァントって……何?」
ノートに走らせていた鉛筆を止めて、メルハートの方を見る。2つに結い分けた髪が肩からさらさらと流れて、やがて僕を大きな青い瞳が捉える。
「魔法の弟子って意味よ。わたしが先生、ウィズが弟子。教えているんだから当然でしょ? 魔法は知恵と力を分け与えているのに等しいから」
「そ、そうなんだ?」
思わず顔が引きつる。
「でも便宜上、師弟って呼ばれているだけで、別に何もないわよ? 何も」
ニッコリ。と怖いほどに優しい笑みのメルハート。最後だけふっと視線を外して窓の外を眺めたふりをしている。
「あ、あぁ……? 弟子ね、うん、それならいいんだ」
「一生ものだから感謝なさい」
「いっ……!?」
一瞬だけ口角を持ち上げたようにも見えたけれど、そのまま自分のノートへと向き直った。
もう聞くのはよそう。メルハートの魔法の弟子だって、別に悪くないや。
◇
「さて、じゃぁ魔法術式の勉強の続きね!」
メルハートが算術の教科書を閉じて、背伸びをする。今日の宿題も一通り片付けて、いよいよ今日の「魔法の勉強会」の始まりだ。
丸い学習机の中央に『生徒名簿』を置く。これはメルハートが朝一番で職員室から借りてきたものだ。
「まずは、おさらいね。この名簿には、出席番号、名前、性別、生年月日、所属クラス名が記されています。さて、属性は?」
「『生徒名簿』の属性ね、……えぇと」
魔術を使うには属性がとても大事だ。生徒名簿は属性が多くて混乱しそう。僕はノートに簡潔にまとめてみることにする。
ヒースブリューンヘイム王国、第七王立中等学舎。三年生の『生徒名簿』は――。
属性1:『出席番号』
属性2:『名前』
属性3:『性別』
属性4:『生年月日』
属性5:『所属クラス名』
属性は5つ。こうして並べてみると、そんなに難しくはない。
当たり前の事しか書かれていない事がわかる。
ちなみに、僕――こと、ウィズ・エルオリオンは名簿を見ると以下のとおり。
1『出席番号』:13
2『名前』:ウィズ・エルオリオン
3『性別』:男性
4『生年月日』:王国歴1302年07月06日
5『クラス』:B
ちなみに、メルハートの名簿はこう。
1『出席番号』:27
2『名前』:メルハート・リング・ファンクロゥド
3『性別』:女性
4『生年月日』:王国歴1302年04月12日
5『クラス』:B
こんな具合に、クラスメイト全員の名前やら生年月日という属性が書かれている。
「そうね。でも勉強で使うには人数が多すぎるから……このページの最初の方、10人分だけを使いましょう」
「B組の名簿の……出席番号の最初のほうだね?」
「10人ならわかりやすいでしょ。男女混じっているし」
そう言って指差す名簿のページには、こんなふうに10人の生徒が書かれていた。男女の混合名簿で、丁度5人ずつだ。
「『属性』は、出席番号、名前、性別、生年月日、クラスだね」
01 ウィミルア 女性 1302/09/13 B
02 クウェル 男性 1302/04/17 B
03 エリアール 女性 1302/04/09 B
04 バール 男性 1302/12/13 B
05 ジュゴー 男性 1302/04/02 B
06 イリーナ 女性 1302/07/11 B
07 オーロラリア 女性 1302/12/24 B
08 アリアート 女性 1302/05/03 B
09 ドライセア 男性 1302/11/18 B
10 ベレイ 男性 1302/07/09 B
「そうね。さぁ、これを使って魔法の勉強よ。けど個人情報だから、取り扱いには注意よ」
「わかってるよ」
「じゃぁまず、女子生徒だけを選び出してみて」
指先でとんとん、と名簿のBクラスを開いて指し示す。
メルハートは僕から見て左斜めに座っている。丸い学習机は広くはなく、教室の机を並べているような距離にいる。
長いまつげに明るいストロベリー・ブロンドの前髪がかかる。メルハートのブルーの虹彩は、サファイアのように透明で、中心が深い海のような色彩。それは女子が羨む色だとか。
間近で見る幼馴染は意外と綺麗で……と。目が合って慌てて『生徒名簿』に視線を落とす。
「抽出は、『select』文だったよね?」
「そう。まずは小手調べ。ポイントは2つの属性を指定するってことね」
「えぇと……『and』で条件を足せばいいのだから……」
簡単な魔法円を指先で描きながら、魔法力を励起し『生徒名簿』に手をかざした。そして、魔法の術式を唱えてゆく。
――select * from 『生徒名簿』
where 『性別』=『女性』
and 『クラス』=『B』
「セレクト アスタリスク フロム 『生徒名簿』
フエア 『性別』イコール『女性』
アンド 『クラス』イコール『B』……!」
すると半透明の「光の小窓」が浮かび上がり、狙い通りB組の女子生徒、5名だけが映し出された。
07 オーロラリア 女性 1302/12/24 B
08 アリアート 女性 1302/05/03 B
06 イリーナ 女性 1302/07/11 B
01 ウィミルア 女性 1302/09/13 B
03 エリアール 女性 1302/04/09 B
一覧表として浮かび上がった項目は、ちゃんと『出席番号』『名前』『性別』『生年月日』『所属クラス』となっている。
「出来たわね!」
「あれ? でもこれ出席番号の順がバラバラになってない? ……どうして?」
「これはね、名簿の出力順、つまり並び順を指定していないんだもの。適当に出ちゃうわよ。でも、良いところに気がついたわね、ウィズ。並ぶ順序は自由に指定できるのよ」
細く整えられた眉を、ちょっと持ち上げるメルハート。
「並び順序を変える?」
「そう。術式の最後に『order by』と『属性』って唱えればいいのよ」
「オーダーバイに属性……で、並び変え? やってみる。例えば、生まれた順序とかでも並べられる?」
「大丈夫、それでもいいわよ」
――select * from 『生徒名簿』
where 『性別』=『女性』
and 『クラス』=『B』
order by 『生年月日』
先ほどの術式の最後に、order by 『生年月日』を追加する。すると魔法の小窓に、生年月日で並び替えられた名簿が出てきた。
03 エリアール 女性 1302/04/09 B
08 アリアート 女性 1302/05/03 B
06 イリーナ 女性 1302/07/11 B
01 ウィミルア 女性 1302/09/13 B
07 オーロラリア 女性 1302/12/24 B
「へぇ……! ちゃんと誕生日の順だね。これ、お祝いを言う順番が分かって便利かも……!」
「全員に言うつもりなの!?」
「い、いやその……」
じぃ、と僕に湿った視線を向けるメルハート。冗談だってば、もう。
「な、名前順でも並び替えできるかな?」
――select * from 『生徒名簿』
where 『性別』=『女性』
and 『クラス』=『B』
order by 『名前』
今度は、先ほどの術式の最後、order by の後ろに 『名前』を追加する。
すると狙い通り。口述言語表記(※アイウエオ)順で並び替えられた名簿の出来上がりだ。
08 アリアート 女性 1302/05/03 B
06 イリーナ 女性 1302/07/11 B
01 ウィミルア 女性 1302/09/13 B
03 エリアール 女性 1302/04/09 B
07 オーロラリア 女性 1302/12/24 B
「ふぅん! 便利に使えるようになってるんだなぁ……」
僕は思わず感心する。
「今日は少し難しいこともするわ。昨日のがレベル1だとしたら、今日はレベル2ね。ついてこられるかしら?」
メルハートは、いつも僕を試すみたいな言い方でそう言うと、静かに微笑んだ。
「も、もちろん、大丈夫さ」
<つづく>
【ワンポイント】
はい、今回は、便利な呪文が出てきました。
沢山の結果があるときに、並び替えのできる便利な『order by』句です。
選び出す『select』文
対象となる物を示す『from』句
条件を絞る『where』句に『and』句。
そして、
並び替えの『order by』が加わりましたね。
ウィズくんは誕生日と名前で並び替えましたが、これらを組み合わせても大丈夫。
例えば同じ誕生日で、名前の違う子が居た場合
「order by『生年月日』,『名前』」とカンマで続けて書いてもよいのです。
マリア 1302/04/19 ←これ
イーナ 1302/01/09
アイナ 1302/04/19 ←これ
↓
イーナ 1302/01/09
アイナ 1302/04/19 ←これ
マリア 1302/04/19 ←これ
さて、次回は週の半ばぐらいに公開する予定です。
(週に1、2回の公開となります)
つづきをお楽しみに!