
教えてください。
複数のカラムにて取りうる値全てを重複なしで取得したいのですがうまくいきません。
例えば下記のようなテーブルがあるとします。
┌────┬────┬────┐
│第一希望│第二希望│第三希望│
├────┼────┼────┤
│ 東京 │ 大阪 │ 宮城 │
├────┼────┼────┤
│ 大阪 │ 京都 │ 東京 │
├────┼────┼────┤
│ 福岡 │ 愛知 │ 東京 │
└────┴────┴────┘
以下のような結果を得たいです。
┌──┐
│東京│
├──┤
│大阪│
├──┤
│宮城│
├──┤
│京都│
├──┤
│福岡│
├──┤
│愛知│
└──┘
どなたかご教授ください。
お願いします。
No.1ベストアンサー
- 回答日時:
提示された表を使っての例を、回答1に示します。
この方法では、列を縦につなげるような指定になり、操作したり情報を増やしたりする上で制約が出てきてしまうと思います。
回答2のように、列を増やさず別の行で管理すれば、検索は単純になり、管理する情報を増やすのも楽だと思います。
(1)回答1
【表定義】
set names sjis;
create table t1
(第一希望 varchar(4),
第二希望 varchar(4),
第三希望 varchar(4));
【格納データ】
insert into t1 values
('東京','大阪','宮城'),
('大阪','京都','東京'),
('福岡','愛知','東京');
【検索】
select 第一希望 as 志望校 from t1
union
select 第二希望 as 志望校 from t1
union
select 第三希望 as 志望校 from t1
;
(2)回答2
【表定義】
create table t1
(氏名 varchar(20),
志望順 tinyint,
志望校 varchar(4));
【格納データ】
insert into t1 values
('yamada',1,'東京'),
('yamada',2,'大阪'),
('yamada',3,'宮城'),
('iwaki',1,'大阪'),
('iwaki',2,'京都'),
('iwaki',3,'東京'),
('satonaka',1,'福岡'),
('satonaka',2,'愛知'),
('satonaka',3,'東京');
【検索】
select distinct(志望校) from t1;
早速の回答、ありがとうございます。
おっしゃるとおり、回答2の様に別tableで管理した方が簡単な面もありますが、他の部分との兼ね合いでいろいろ面倒なことがあるもので…
unionって自動的に(?)重複を丸めてくれるんですね。コレがまさに求めていた解でした。
どうもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- 転職 長く続けられる好条件の求人でしょうか? 3 2023/07/12 18:45
- 神社・寺院 十羅刹女(じゅうらせつにょ)様をお祀りしているお寺 2 2022/10/31 21:29
- 就職 (急募)就職について おすすめの会社などあれば教えてください 工業高校出身です 私は来年3月高卒予定 1 2022/04/12 18:47
- 大学受験 身長187cmです。 大学受験で1番コスパ悪くて不利な都市は名古屋ですよね? 東京→まず東大があり、 5 2022/09/15 23:17
- 転職 下記のような募集は、良い会社でしょうか?どう思いますか?入ってみたら良くない事が無いでしょうか? 4 2023/03/03 16:40
- ボードゲーム マクドの値上げ。全てロシアが悪い。 3 2023/06/20 17:38
- 関西 大阪府内での運転 5 2022/08/14 11:20
- 地域研究 日本の三大都市は、東京と大阪と、もう一つはどこ? 五大都市だと、東京、大阪と、残り三都市は福岡、名古 5 2022/07/15 09:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
SELECTした結果に行番号を求めたい
-
複数の条件に該当する結果を、...
-
テーブル間の差分抽出方法は?...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
PostgreSQLのtimestamp型で時間...
-
フォームから入力してテーブル...
-
SQLサーバに対するSQL文で抽出...
-
既にテーブルが存在する場合の...
-
エラーを起こす方法
-
pandasでsqlite3にテーブル作成...
-
SQLで、Join句で結合したテ...
-
結合したテーブルをSUMしたい
-
truncate tableを使って複数の...
-
selectの単純繰り返し
-
AccessとSQL Serverの連携について
-
OracleとSQL ServerのSQL文上で...
-
既存データをINSERT文にして出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
複数の条件に該当する結果を、...
-
SELECTした結果に行番号を求めたい
-
データの入れ替えを同時に行な...
-
UPDATEの更新前の値を取得したい
-
pg/plsqlでのカーソルのLIK...
-
文字列の並び替えについて
-
プログラムよりファンクション...
-
oleDBでnumeric形式の小数部分...
-
PLPGSQLでの複数行複数列
-
数値を単一引用符で囲むのはど...
-
複数カラムでdistinct
-
副問合せで複数列の値リストの...
-
テーブル間の差分抽出方法は?...
-
複雑なUPDATE文2
-
ビット単位のソート
-
FETCH した行が取り出せない
-
SQLで任意の列の最大値の定数は...
-
ユーザIDのソート
-
SELECTした結果に通番を振りたい
おすすめ情報