J'ai besoin de sélectionner quelques lignes de la table mais que les lignes doivent être commandées par ROWNUMBER asc
et si ROWNUMBER
est nul je dois commander par created desc
;ordre par asc et desc
Ceci est ma requête sql sans ordre par condition;
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;
est-ORDER BY ROWNUMBER, CRÉÉE fonctionne pour vous DESC? Si non, quelle est la différence avec le jeu de résultats souhaité? Pouvez-vous ajouter un petit exemple de commande désirée à la question? – ThinkJet