テーブルがあり、別のテーブルを外部結合して、Oracle 10g を使用して 2 番目のテーブルの最初の行 (nr が最も低い行) のみを取得したいと考えています。
編集: nr は ID 内で一意です
Table x Table y
id id nr code
1 1 1 B
2 1 2 A
3 2 2 A
Expected result:
id nr code
1 1 B
2 2 A
3 NULL NULL
テスト データの例 (単一行への制限は行いませんが、より高速なテストが可能になるはずです):
WITH
x AS( SELECT 1 id FROM dual UNION SELECT 2 FROM dual UNION SELECT 3 FROM dual ),
y AS( SELECT 1 id, 1 nr, 'B' code FROM dual
UNION SELECT 1, 2, 'A' FROM dual
UNION SELECT 2, 2, 'A' FROM dual
) -- end of test data
SELECT x.id, y.nr, y.code
FROM x
LEFT OUTER JOIN y ON ( y.id = x.id )