skillup

技術ブログ

Database

CASE式のすすめ その3

投稿日:

本日もCASE式です。

下記のようなテーブル(studentclub)があるとします。

std_id | club_id | club_name | main_club_flg
——–+———+————–+—————
100 | 1 | 野球 | Y
100 | 2 | 吹奏楽 | N
200 | 2 | 吹奏楽 | N
200 | 3 | バドミントン | Y
200 | 4 | サッカー | N
300 | 4 | サッカー | N
400 | 5 | 水泳 | N
500 | 6 | 囲碁 | N

ここで下記のような実行を行います。

  • ここで1つのクラブに所属している学生はクラブIDを取得
  • 複数のクラブに入っている場合はmain_club_flgが立っているクラブIDを取得

第一ステップ
std_id,と列数を出す

これをベースに肉付けしていきます。

第二ステップ

std_id | main_club
——–+———–
100 | 1
200 | 3
300 | 4
400 | 5
500 | 6

このように集計関数のなかで書くとGROUP BYされたなかで条件分岐をさせることができます。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

Postgres リモートホストからの接続他

今まで使ってきたデータベースはMySQLがほとんどなのですが、最近少し、Postgresを触っています。 今回はパスワードの設定とリモートからの接続など。 Contents1 postgresへのログ …

no image

CakePHPでの数字カンマ区切り&PHP&MySQL曜日の出力

今回は主に時間やお金の表示など、出力に関するネタです。 Contents1 Cakeでのカンマ区切り1.1 単純なカンマ区切り 例1,0001.2 \をつけるケース 例 \1,0001.3 円をつける …

no image

HAVING句がらみの計算式

「達人に学ぶSQL徹底指南書」読んでますが、かなり難しいものがでてきましたね。 テーブルは前回のものと同じ以下のものを使います。 name | income ————+——– サンプソン | 4000 …

no image

GlassFishでDB接続

JavaEEではアプリケーションサーバーとしてGlassFishを使いますが、先日、GlassFishを通さないとJavaEEでDBが動かせないということを知りました。そのためJavaEEではデータベ …

no image

SQL問題

今までやったSQL問題などのまとめ。定期的にやる予定です・・ 自分用なのでテーブルデータとかあったりなかったりいい加減です(汗) SQLドリル 問題1 nameとageで構成されたテーブルがあるとして …

アーカイブ