0
我需要从表中选择一些行,但行必须按ROWNUMBER asc
进行排序,如果ROWNUMBER
为空,则必须按created desc
排序;order by asc and desc
这是我的sql查询,没有按条件排序;
SELECT FIN_CGU.*, RES.ROWNUMBER
FROM COMM$GROUP_USER FIN_CGU
FULL JOIN (SELECT AGGR_RES.R_GR AS TOT_GR,
ROW_NUMBER() OVER(ORDER BY AGGR_RES.M_DATE DESC) AS ROWNUMBER
FROM (SELECT MSG.GROUP_ID AS R_GR, MAX(MSG.CREATED) AS M_DATE
FROM COMM$MESSAGE MSG
JOIN COMM$GROUP_USER GR_USR
ON GR_USR.GROUP_ID = MSG.GROUP_ID
JOIN COMM$GROUP GR
ON GR.ID = MSG.GROUP_ID
WHERE GR.STATE <> 'DELETED'
AND GR_USR.STATE <> 'DELETED'
AND MSG.STATE <> 'DELETED'
AND GR_USR.USER_ID = 9172771513163989084
GROUP BY MSG.GROUP_ID) AGGR_RES
ORDER BY AGGR_RES.M_DATE DESC) RES
ON FIN_CGU.GROUP_ID = RES.TOT_GR
JOIN COMM$GROUP CG
ON FIN_CGU.GROUP_ID = CG.ID
WHERE (ROWNUMBER IS NULL OR ROWNUMBER BETWEEN 1 AND 3)
AND FIN_CGU.USER_ID = 9172771513163989084
AND RES.ROWNUM <= 3
ORDER BY
Oracle 10g;
是ORDER BY ROWNUMBER,造就了DESC为你的作品?如果不是,与期望的结果集有什么不同?你可以添加一个想要排序的小例子吗? – ThinkJet