dポイントプレゼントキャンペーン実施中!

同じ列が存在する2つのテーブルがあります。
その2つのテーブルの同じ列同士を突き合わせ、
同じ条件の値を表示したいのですが、
SQL文で可能なのでしょうか?


例:
条件としてテーブル1、テーブル2の列Aが3以下の数字すべて

テーブル1
列A

1
1
2
3
4
5

テーブル2
列A

1
2
2
3
3
3
3
4
4
5

ほしい結果
A|A
――
1|1
1|
2|2
 |2
3|3
 |3
 |3
 |3

不躾な質問で恐縮ですが、
アドバイスお願いいたします。

A 回答 (1件)

SQL Server 2005以降ならば、以下の通りです。


SELECT
t1.A,t2.A
FROM
(SELECT
ROW_NUMBER() OVER (PARTITION BY A ORDER BY A) SEQ,*
FROM テーブル1
WHERE A<=3) t1
FULL OUTER JOIN
(SELECT
ROW_NUMBER() OVER (PARTITION BY A ORDER BY A) SEQ,*
FROM テーブル2
WHERE A<=3) t2 ON t2.A=t1.A AND t2.SEQ=t1.SEQ
    • good
    • 0
この回答へのお礼

早速のアドバイスありがとうございます。
FULL OUTER JOIN
と言うものがあるんですね。
勉強になりました。
有難うございました。

お礼日時:2009/05/27 21:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!