Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/07/2008, 09h20   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 75
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 75
Points : 12
Points : 12
Par défaut question utilisation RANK

Bonjour,
voila je ne connais pas trop l'AS400 mais un de mes clients vient de m'envoyer une requête avec ce bout de code dans le from :

INNER JOIN Table1 ON RANK() OVER(order by champs1) = Table2.champs2

pour moi àa me parit pas possible d emettre un order sans un INNER JOIN ?
Qu'en pensez-vous?

De plus que fait la fonction RANK ?

merci
stephyugh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 17h49   #2
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Comme dit son nom, la fonction RANK donne le RANG dans lequel se trouve l'objet de la fonction.

Un exemple expliqué devrait mieux t'aider à comprendre.
Je reprends un exemple simplifié de la doc SQL "DB2 for i5/OS SQL Reference V5R4".
L'instruction ci-dessous affiche le nom et le salaire des employés qui gagnent plus de 30000 €, ainsi que leur rang selon leur salaire.

Code :
1
2
3
4
SELECT NOMEMP, SALAIRE, RANK() OVER (ORDER BY SALAIRE DESC) AS RANG 
FROM EMPLOYE 
WHERE SALAIRE > 30000 
ORDER BY NOMEMP
Si on veut trier sur le rang, on mettra alors soit ORDER BY RANG DESC, soit ORDER BY RANK() OVER (ORDER BY SALAIRE DESC) -- ce qui revient au même -- à la place de ORDER BY NOMEMP.

J'espère que ça t'éclaire.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h08.


 
 
 
 
Partenaires

Hébergement Web