• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:このようなテーブルを取得するSELECT文は?)

複数の列を行に変換するSELECT文は?

このQ&Aのポイント
  • テーブルtb1の複数の列を行に変換するためのSELECT文を求めています。
  • tb1の設計が改善されていない状況で、以下のような結果を取得したいです。
  • idと各駅名を組み合わせて、列の値がnullでない行を取得するSELECT文を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答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

suffre
質問者

お礼

ありがとうございます!うまくできました!! ついでですが、sort列は取得しないようにできますか・・・? 取得した結果をcsvに出力するのですが、sort列もcsvに出力されてしまうのです・・・。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答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

suffre
質問者

お礼

ありがとうございます! できました! 助かりました!!

関連するQ&A