• 締切済み

項目数分レコードにしたい

テーブルには住所履歴が格納されていて 氏名 履歴1 履歴2 履歴3 ------ ------- ------- ----- aさん 北海道 東京 沖縄 bさん 岩手 東京 cさん 大阪 兵庫 福岡 というデータがある場合、 下のような結果に表示させるSQLを教えてください。 氏名 履歴 ------ ------- aさん 北海道 aさん 東京 aさん 沖縄 bさん 岩手 bさん 東京 cさん 大阪 cさん 兵庫 cさん 福岡 よろしくおねがいします。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

この様な非正規化テーブルを正規化されたものに組み替えるには ユニオンクエリを使います select 氏名,履歴1 as 履歴 from テーブル名 where 履歴1 is not null union all select 氏名,履歴2 as 履歴 from テーブル名 where 履歴2 is not null union all select 氏名,履歴3 as 履歴 from テーブル名 where 履歴3 is not null