[SQL] SQL_CALC_FOUND_ROWS + FOUND_ROWS() + LIMIT avec MSSQL?

SQL_CALC_FOUND_ROWS + FOUND_ROWS() + LIMIT avec MSSQL? [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 06-12-2007 à 13:12:45    

Bonjour à tous,
 
Je cherche à formuler une requête MSSQL 2005 qui me permettrait d'afficher un sous ensemble de résultat tout en m'indiquant le nombre total.
 
Avec MySQL, il suffit de faire ainsi:
 

Code :
  1. SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE param1 LIKE 'a%' LIMIT 100,10;
  2. SELECT FOUND_ROWS();


Accessoirement, je souhaite faire un GROUP BY sur le résultat aussi.
 
Mais je ne connais pas trop MSSQL. Quelqu'un à une idée ?

Reply

Marsh Posté le 06-12-2007 à 13:12:45   

Reply

Marsh Posté le 06-12-2007 à 14:37:37    

Il y a apparament ROW_NUMBER() dans MSSQL 2005 qui permet de faire un "équivalent" (faut vite le dire...) à LIMIT :
 

Code :
  1. WITH IDOrdered AS (
  2.     SELECT id_field, R=ROW_NUMBER() OVER (ORDER BY sort_field ASC)
  3.     WHERE conditions
  4.     FROM table
  5. ),
  6. MyPage AS (
  7.     SELECT id_field FROM IDOrdered WHERE R between Y and Y+10
  8. )
  9. SELECT t.* FROM TABLE t
  10. INNER JOIN MyPage p ON p.id_field=T.id_field
  11. ORDER BY T.id_field ASC


Ensuite, il "suffit" de faire un COUNT sur IDOrdered
 
J'ai tout bon?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed