1つのテーブル・2つの列を結合して1つの検索結果にする方法を教えてください。

delonghi
2014-07-14 17:20 1467 1
あるテーブルAがあり、そこにINT型の列bと列cがあるとします。

|b|c|
|1|2|
|1|3|

とデータが格納されているとき、ここから[1,2,3]という風に、重複のない結合結果を出すにはどういったSQLを書けば良いでしょうか。

2列だとDISTINCTも使えず、簡単そうなのに自分ではできませんでした。出力後に結合するのでは色々と不都合なことがあったため、この出力が一発で出せれば便利だと思い質問させていただきました。ご回答よろしくお願いいたします。

コメント

2014年 07月 22日 (11:30)
こんにちは。
イノ(inno)です。

下記のSQLをご参考ください。
UNION を利用して抽出します。

-- #### テストテーブル作成
CREATE TABLE dbo.TempData
(
b int
, c int
)

-- #### テストデータ登録
INSERT INTO dbo.TempData (b,c) VALUES (1,2)
INSERT INTO dbo.TempData (b,c) VALUES (1,3)

-- #### 最終SQL
SELECT DISTINCT b
FROM
(
SELECT b FROM dbo.TempData
UNION ALL
SELECT c FROM dbo.TempData
) A

-- #### 実行結果
b
-----------
1
2
3

UNION をすると最初の列名で結果ができます。