Retourner 10 elements a partir du 20eme

Résolu
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 10 déc. 2004 à 02:00
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 30 déc. 2004 à 15:10
Bonjour,
j'ai une requete SQL de ce type

SELECT *
FROM Articles
WHERE (Articles.Categorie = @Categorie)
ORDER BY Articles.DateCreation DESC, Articles.ID DESC

J'aimerais recuperer seulement les enregistrements 11 à 20 par exemple, je sais qu'il y a la fonction TOP 10 pour retourner les dix premiers elements, mais je n'arrive pas à demarrer à l'index que je veux. une fonction StartWhen me serait utile ;)

Merci

Cyril

8 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
13 déc. 2004 à 21:59
malheureusement je suis sur sqlserver.
J'ai cependant trouver ca :
 SELECT * FROM
(SELECT TOP 20 * FROM
(SELECT TOP 60 topic.lastdate, topic.test
FROM topic WHERE topic.id=5 ORDER BY topic.lastdate DESC) AS t1 ORDER BY lastdate)
AS t2 ORDER BY lastdate DESC 

> http://forum.zozoll-online.com/topic.asp?t=908

le problème c'est que je voulais passer en paramètre d'une procédure stocké le debut et nombre mais le SELECT TOP @Param il a pas apprecié :(

Cyril
3
cs_karn Messages postés 79 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 6 juillet 2009
30 déc. 2004 à 12:45
Mais ta chaine sql dans une variable et fait
exec (tavariable)
3
cs_karn Messages postés 79 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 6 juillet 2009
30 déc. 2004 à 14:55
Declare @sql NVARCHAR(100)

SELECT @SQL='(SELECT *FROM(SELECT TOP '+ @debut + '* FROM(SELECT TOP '+ @count+'topic.lastdate, topic.test
FROM topic WHERE topic.id=5'

EXEC(@SQL)

Je l'ai fait a l'arrache il est possible que je me sois trompé dans les quote mais l'esprit est la
3
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
13 déc. 2004 à 13:39
Slt

Avec MySql il faut utiliser la fonction LIMIT
Pour les autres je sais pas !

8-) :-p

Trinita,

(Nous savons tous lire, alors passons un peu de temps sur les documentations. Pensons aux personnes qui les rédigent :big) ;) )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
14 déc. 2004 à 17:39
ah bein forcément ....

T'as essayé de faire une fonction dans sql server pour mettre les params, peut être que la fonction accepte ce genre de params....

sinon tu peux essayer un truc du style :

declare @id int
set @id = 0

select *
from(

select @id+1, table.*
from table

) as matable
where num between 10 and 20

j'espere que tu vois le principe mais je sais pas si cela fonctionne j'ai pas testé !

8-) :-p

Trinita,

(Nous savons tous lire, alors passons un peu de temps sur les documentations. Pensons aux personnes qui les rédigent :big) ;) )
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
14 déc. 2004 à 17:49
j'ai bien compris le principe et c'est bien comme ca que j'avais essayé,j'avais déclaré ma variable mais non il a pas voulu :sad)

j'avais fait de mémoire
ALTER PROCEDURE dbo.GetArticles
(
@count int,
@debut int
)
AS
SELECT * FROM
(SELECT TOP @debut * FROM
(SELECT TOP @count topic.lastdate, topic.test
FROM topic WHERE topic.id=5 ORDER BY topic.lastdate DESC) AS t1 ORDER BY lastdate)
AS t2 ORDER BY lastdate DESC
RETURN

ou quelque chose du genre : tant pis

Merci quand meme :)

Cyril
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 déc. 2004 à 12:53
Je suis pas sur d'avoir compris, je fais ca :

declare @SQL = SELECT * FROM
@SQL = @SQL + (SELECT TOP @debut * FROM
etc...

EXEC(@SQL)

Cyril
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 déc. 2004 à 15:10
ok

merci

Cyril
0
Rejoignez-nous