Code :
- SELECT
- *
- FROM
- (
- SELECT TOP 20
- *
- FROM
- (
- SELECT TOP 60
- champ_1,
- champ_2,
- champ_n,
- champ_tri
- FROM
- table
- ORDER BY
- champ_tri DESC
- ) AS t1
- ORDER BY
- champ_tri
- ) AS t2
- ORDER BY
- champ_tri DESC
|
Par exemple, la requete du mileu recupere 150 lignes, et on veut seulement 20 lignes à partir de la 40eme.
Dans ce cas, le premier TOP = 20 (nombre de lignes à recuperer) et le second TOP = 60 (nombre de lignes à recuperer + nombre de lignes avant la premiere, donc ici 20 + 40)
Ok, c'est absolumment immonde comme code, mais ca marche
Ya une autre solution beaucoup plus propre, c'est dans une procedure stocké de passer par une table temporaire, mais c'est plus lourd à mettre en place
Message édité par zozoll le 04-09-2003 à 02:56:25