我正在尝试从两个表执行左联接。
表1我需要返回所有的行,但是在连接表2中,如果有许多匹配,我只想在第一个匹配上"附加"数据。
表1
id | 月 |
---|---|
01 | 八月 |
01 | 9月 |
02 | 八月 |
03 | 9月 |
从现有的left join
查询开始,您可以使用row_number()
来标识";第一个";每id
行,然后是条件逻辑:
select t1.id, t1.month,
case when row_number() over(partition by t1.id order by t2.month) = 1 then t2.service_date end service_date
from table1 t1
left join table2 t2 on t2.id = t1.id
CCD_ 4对具有相同CCD_;您可能想要比一个月作为字符串作为order by
列更稳定的内容。