我有两个表格,其中包含
等数据表1
Id id_nm
1 per
2 per
3 org
table2
Id Lst_id l_nm up_dt
1 22 abc 9/10/2015
1 21 abs 10/12/2016
2 21 xzc 10/12/2013
2 23 xyz 10/21/2013
2 23 xnh 01/12/2013
需要选择l_nm
,其中lst_id
为22.如果不存在,那么我们需要选择具有最新更新日期的l_nm
。
Id lst_id lnm up_dt
1 22 abc 9/10/2015
2 23 xyz 10/21/2013
任何人都可以帮我实现它。
答案 0 :(得分:0)
简单的方法是使用带有window子句的row_number来生成自定义排序顺序:
select id, lst_id, l_nm as lnm, up_dt
from (
select id
,lst_id
,l_nm
,up_dt
,row_number()
over (partition by id
order by case when lst_id = 22 then 1 else 2 end
,up_dt desc) as rn
from table2
) where rn = 1;