テーブルtb1が以下のようになっているとします
id, region, station1, station2, station3, station4, station5
0, 東京, 池袋駅, 渋谷駅, null, 新宿駅, null
1, 横浜, null, 横浜駅, 戸塚駅, 菊名駅, 反町駅
2, 大阪, 梅田駅, 天満駅, 野田駅, null, null
このようなテーブルを、以下のような結果として取得するSELECT文はどのようになるのでしょうか?
0, 東京,
0, 東京, 池袋駅
0, 東京, 渋谷駅
0, 東京, 新宿駅
1, 横浜,
1, 横浜, 横浜駅
1, 横浜, 戸塚駅
1, 横浜, 菊名駅
1, 横浜, 反町駅
2, 大阪,
2, 大阪, 大阪駅
2, 大阪, 梅田駅
2, 大阪, 野田駅
複数の列を行にするのがわかりません。
そもそも、tb1の設計が良くないのですが、これは変えられないと先方に言われました。
どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
この構造はとても集計する気があるとは思えませんが、
unionすればできないことはないでしょう
select id,region,null as station,0 as sort from tb1
union select id,region,station1,1 from tb1 where not station1 is null
union select id,region,station2,2 from tb1 where not station2 is null
union select id,region,station3,3 from tb1 where not station3 is null
union select id,region,station4,4 from tb1 where not station4 is null
union select id,region,station5,5 from tb1 where not station5 is null
order by id,sort
ありがとうございます!うまくできました!!
ついでですが、sort列は取得しないようにできますか・・・?
取得した結果をcsvに出力するのですが、sort列もcsvに出力されてしまうのです・・・。
No.2
- 回答日時:
>sort列は取得しないようにできますか・・・?
サブクエリにいれてしまえばよいでしょう
select id,region,station from(
select id,region,null as station,0 as sort from tb1
union select id,region,station1,1 from tb1 where not station1 is null
union select id,region,station2,2 from tb1 where not station2 is null
union select id,region,station3,3 from tb1 where not station3 is null
union select id,region,station4,4 from tb1 where not station4 is null
union select id,region,station5,5 from tb1 where not station5 is null
) as sub
order by id,sort
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 電車・路線・地下鉄 武蔵小杉<->神田エリアの通勤経路について 3 2022/04/11 20:34
- 電車・路線・地下鉄 【鉄道】山手線の駅の格付けランキングを作ってみました!皆さんのご意見をよろしくお願いいたします。 4 2023/02/11 16:45
- 新幹線 【鉄道】全国にある新幹線の駅の格付けランキングを作ってみました!皆様のご意見をよろしくお願いします。 1 2023/02/11 16:42
- 新幹線 気象や事故などの影響で爆延の新幹線深夜到着 8 2023/08/17 05:27
- 新幹線 新幹線乗車時の改札の通り方について 3 2022/11/12 18:36
- 電車・路線・地下鉄 新幹線で新横浜から新大阪まで行った後に、その乗車券(横浜市内発大阪市内行の乗車券)で、おおさか東線~ 3 2023/05/09 20:17
- 電車・路線・地下鉄 紙切符で乗り換え 5 2022/12/24 07:06
- 電車・路線・地下鉄 東横線と田園都市線 帰宅ラッシュの激しいのはどっち!? 5 2023/05/05 12:04
- 新幹線 新大阪ひかりはどうして静岡県内は全通過なの? 川勝はのぞみよりもこっちに噛みついた方がいいんじゃない 5 2023/07/23 13:17
- 電車・路線・地下鉄 新幹線 分割乗車券 4 2023/07/21 20:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
sqlで、600行あるテーブルを100...
-
書籍の内容はまともでしょうか?
-
SQLサーバから、項目の属性(型...
-
阪急三番街 ATM(ゆうちょ)は...
-
【MySQL】本当に困っているので...
-
DataTableで重複行を削除したい
-
SQL Left Join で重複を排除す...
-
Unionした最後にGROUP BYを追加...
-
1対多結合で多を絞り込み条件と...
-
php+mysqlで複数選択削除について
-
PL/SQLの変数について
-
[MySQL] UNIQUE制約の値を更新...
-
LAST_INSERT_IDで同時にアクセ...
-
Access パラメータクエリをcsv...
-
画像とカテゴリーを出力したい...
-
マイクラPC版のコマンドで効率...
-
Mysql でレコードを追加した時...
-
VMwareがCDドライブを認識する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報