
教えてください。
複数のカラムにて取りうる値全てを重複なしで取得したいのですがうまくいきません。
例えば下記のようなテーブルがあるとします。
┌────┬────┬────┐
│第一希望│第二希望│第三希望│
├────┼────┼────┤
│ 東京 │ 大阪 │ 宮城 │
├────┼────┼────┤
│ 大阪 │ 京都 │ 東京 │
├────┼────┼────┤
│ 福岡 │ 愛知 │ 東京 │
└────┴────┴────┘
以下のような結果を得たいです。
┌──┐
│東京│
├──┤
│大阪│
├──┤
│宮城│
├──┤
│京都│
├──┤
│福岡│
├──┤
│愛知│
└──┘
どなたかご教授ください。
お願いします。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
データの入れ替えを同時に行な...
-
PLPGSQLでの複数行複数列
-
オラクルのUPDATEで複数テーブル
-
SQLで、Join句で結合したテ...
-
dumpでインデックスだけ抜きたい
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
データベース ユーザの「このユ...
-
sqlに記述できない文字
-
'modify' 付近に不適切な構文が...
-
truncate tableを使って複数の...
-
副問合せを使わずにUNIONと同様...
-
selectの単純繰り返し
-
在庫管理のデータベース
-
テーブル定義書(Oracle) 【IX】...
-
DB2でテーブルのサイズを見たい
-
SQL SERVERの BULK INSERT
-
エラーを起こす方法
-
SQLサーバに対するSQL文で抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT INTOで一度に複数の変数...
-
UPDATEの更新前の値を取得したい
-
SELECTした結果に行番号を求めたい
-
複数の条件に該当する結果を、...
-
プログラムよりファンクション...
-
PLPGSQLでの複数行複数列
-
データの入れ替えを同時に行な...
-
FETCH した行が取り出せない
-
数値を単一引用符で囲むのはど...
-
SQLで任意の列の最大値の定数は...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
UPDATEで既存のレコードに文字...
-
PostgreSQLのtimestamp型で時間...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
エラーを起こす方法
-
SQLで、Join句で結合したテ...
おすすめ情報