테이블을 가지고 있고 다른 테이블을 외부 조인하고 Oracle 10g를 사용하여 두 번째 테이블의 첫 번째 행 (가장 낮은 nr을 가진 행) 만 가져 오려고합니다.oracle을 사용하여 외부 조인에서 단 하나의 행 가져 오기
편집 : NR은 (빠른 테스트를 하나의 행으로 제한하지 않고 허용해야한다)
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
예 테스트 데이터의 ID 내에서 고유 :
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)
PARTITION BY의 DESC는 첫 번째 행을 가져 오려면 제거해야합니다. –
어떤 이유로 나는 당신이 가장 높은 Y.NR을 필요로한다고 생각했습니다 :) 물론, 가장 낮은 것을 원한다면 DESC를 제거하십시오. – Quassnoi
그냥 감사합니다. –