select c.*,
case when H.CERT_TYPE = '2J' then '2J' when HT.CERT_TYPE = '2I' then '2I' else P.CERT_TYPE end as CERT_TYPE
from cust_info c
left join ( select * from HXCUST_PAPERINFO where cert_type ='2J' ) H on H.CB_ID=c.cb_id
left join ( select * from HXCUST_PAPERINFO where cert_type ='2I' ) HT on HT.CB_ID=c.cb_id
left join (SELECT * FROM (SELECT P.CB_ID ,
P.CERT_TYPE,
P.CERT_CODE,
ROW_NUMBER() OVER(PARTITION BY P.CB_ID ORDER BY P.CERT_TYPE DESC) RN
FROM HXCUST_PAPERINFO P
WHERE p.cert_type <>'2I' and p.cert_type <>'2J' and p.cert_type is not null)
WHERE RN = 1
) P on p.CB_ID=c.cb_id
oracle 之 PARTITION BY用法
最新推荐文章于 2025-04-22 18:13:09 发布