左连接的同时只输出关联表的一条记录
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 *
FROM (SELECT X.ID,
Y.NR,
Y.CODE,
ROW_NUMBER() OVER(PARTITION
BY X.ID ORDER
BY Y.NR) AS RN
FROM X
LEFT
OUTER
JOIN Y
ON Y.ID = X.ID)
结果如下: