ROW_NUMBER

popidelille Messages postés 2 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 23 septembre 2008 - 23 sept. 2008 à 09:36
sebrou Messages postés 6 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 16 janvier 2009 - 16 janv. 2009 à 11:36
Bonjour à tous,

Je suis confronté à un petit problème. Je sais qu'il existe une possibilité sur une base DB2/400 d'utiliser la fonction ROW_NUMBER() qui retourne un numéro de ligne pour chaque tuple retourné.

Après de nombreuses recherches, je ne réussis toujours pas à faire fonctionner ma requête.
Voici ce une des requête que j'ai testé. Si quelqu'un pouvait me dire ce qui cloche.

SELECT ROW_NUMBER, PSENOM, PSEART
FROM
(SELECT ROW_NUMBER() OVER(ORDER BY PSELAB) AS ROW_NUMBER, PSENOM FROM AURELIEN.ARTLAB);

Et voici la réponse renvoyée par le 400 : (l'erreur est positionnée au niveau de la parenthèse ouvrante après le over)
[IBM][Pilote ODBC iSeries Access][DB2 UDB]SQL0104 - Élément syntaxique ( n'est pas correct. Éléments possibles : , FROM INTO.

Merci à ceux qui se pencheront sur mon problème.

PopiDeLille
Développeur C à Limoges

1 réponse

sebrou Messages postés 6 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 16 janvier 2009
16 janv. 2009 à 11:36
Pour le row number en DB2_400
il faut utiliser la fonction rrn() qui prend en paramètre le fichier

exemple

select rrn(Matable),.....   From Matable Where ...

c'est un peu tordu mais c'est DB2 ;)
0
Rejoignez-nous