Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 06/02/2012, 10h51   #1
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
Par défaut Select et Rownum

Bonjour,

j'ai une requête qui me remonte une liste d'information. Cette liste est triée suivant une date allant de la plus récente à la plus ancienne.

je souhaite faire remonter en vue de leur suppression toutes les lignes sauf les deux premières.

j'ai essayé avec l'instruction ROWNUM mais cela ne fonctionne pas.

Merci pour votre aide
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 10h54   #2
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
Bonjour,

Pourrais-tu :
- nous donner ta requête ?
- nous expliquer pourquoi elle ne marche pas (erreur, résultats...) ?
- nous indiquer ton SGBD (version) ?
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 10h56   #3
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 669
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 669
Points : 2 680
Points : 2 680
Bonjour,

http://oracle.developpez.com/faq/?page=3-1#rownum

Et sinon vous avez aussi les fonctions de fenêtrage (row_number en particulier) http://sqlpro.developpez.com/article...clause-window/
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 10h57   #4
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
Bien je suis en oracle 10G de mémoire ....

Si je fais simplement une :
Code :
1
2
 
SELECT * FROM matable WHERE rownum >2
cela ne me renvoi absolument rien ...

par contre :

Code :
1
2
 
SELECT * FROM matable WHERE rownum <2
Fonctionne mais c'est pas vraiment ce que je veux
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h03   #5
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
En t'inspirant du lien donné par punkoff :


Code :
1
2
3
4
5
SELECT * 
  FROM (SELECT * 
          FROM MaTable
         ORDER BY date) 
 WHERE ROWNUM > 2 ;
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 06/02/2012, 11h07   #6
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
Merci ... cependant le résultat est le même ....
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h10   #7
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
Que renvoi concrétement ta requête initiale (sans le rownum) ?
Es-tu sur d'avoir plus de 2 lignes ?
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h13   #8
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
oui ... 5 lignes au moins.
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h20   #9
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 448
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 448
Points : 4 194
Points : 4 194
C'est dans la faq..

est toujours faux.
Le rownum est fait avant le order by, et prend en compte les lignes déjà fetchées. Donc la première ligne n'est pas fetchée (car le rownum vaut 1), la seconde n'est pas fetchée non plus (le rownum vaut toujours 1 vu que la première n'a pas été fetchée), la troisième non plus, etc...

Bref il faut englober chaque étape en sous requête
Code :
1
2
3
4
5
6
7
SELECT *
FROM (
  SELECT ROWNUM AS num, ladate
  FROM 
       ( SELECT ladate FROM matable ORDER BY ladate DESC  )
)
WHERE num > 2

Voir la dernière requête de la faq : http://oracle.developpez.com/faq/?page=3-1#rankrownum
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/02/2012, 11h22   #10
Membre Expert
 
Avatar de lola06
 
Femme Laure
Consultante en Business Intelligence
Inscription : avril 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Femme Laure
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultante en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : avril 2007
Messages : 987
Points : 1 702
Points : 1 702
Essaye donc :

Code :
1
2
3
4
5
 
SELECT * 
FROM (SELECT MesColonnes, ROW_NUMBER() OVER (ORDER BY date) num
FROM MaTable) 
WHERE num > 2
__________________
~ Lola ~

Ne pas oublier :
et aussi :
lola06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h47   #11
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Enseignement

Informations forums :
Inscription : octobre 2004
Messages : 1 148
Points : 605
Points : 605
La solution donnée par McM fonctionne ....

merci pour votre aide
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h27.


 
 
 
 
Partenaires

Hébergement Web