如何将我的 select 语句限制为根据创建日期仅返回一行?



如何将我的选择语句限制为仅显示一个?

如果您使用的是 Oracle 12c,则可以使用CROSS APPLY而不是INNER JOIN

CROSS APPLY (SELECT inactivationremark,
createts
FROM t_se_internalrating ir
WHERE ir.RATINGSTATUS = 'Deactivated'
AND ir.PARTNERID = p1.ID
ORDER BY ir.createts DESC
fetch first 1 rows only
) ir

寻找交叉应用或外部应用 - 这是您正在寻找的模式。看这里。

如果您使用的是较低版本,则可以使用 ROW_NUMBER 函数:

inner join 
( SELECT 
inactivationremark,
createts,  
row_number() OVER(
PARTITION BY ir.partnerid ORDER BY ir.createts DESC)  rn
FROM t_se_internalrating ir
WHERE ir.ratingstatus = 'Deactivated') 
) ir
ON ir.partnerid = p1.id AND ir.rn < 2

AND rn < 2条件可确保仅包含最新的评级。

最新更新