Obtenir le total du nombre de lignes lors de la pagination
J'ai un écran de recherche où l'utilisateur dispose de 5 filtres de recherche.
J'ai construit une requête dynamique, sur la base de ces valeurs de filtre, et à la page 10 résultats à la fois.
Cela fonctionne bien dans SQL2012 à l'aide de OFFSET
et FETCH
, mais je suis en utilisant deux requêtes pour ce faire.
J'en veux pour preuve les 10 résultats et afficher le nombre total de lignes trouvées par la requête (disons 1000).
Actuellement j'ai ce faire, exécutez la requête deux fois - une fois pour le dénombrement Total, puis de nouveau à la page 10 lignes.
Est-il un moyen plus efficace de faire cela?
OriginalL'auteur user788312 | 2013-10-01
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas à exécuter la requête deux fois.
Basé sur le chat, il semble que votre problème est un peu plus complexe - que vous postulez
DISTINCT
pour le résultat, en plus d'échange. Cela peut le rendre complexe à déterminer exactement ce que l'COUNT()
devrait ressembler et où il devrait aller. Voici un moyen (je veux juste démontrer plutôt que d'essayer d'intégrer la technique dans votre requête bien plus complexe de chat):Nettoyer:
Je suis à la lecture de la valeur dans une variable et de la lecture à partir de cette application.
Puis-je le récupérer dans une variable à partir de sql lui-même??
Est-il un autre moyen que je peux le faire?
Merci de ton Copain...Vous êtes tout simplement génial
OriginalL'auteur Aaron Bertrand
Pouvez-vous essayer quelque chose comme cela
ou
Vous comptez dans votre totalcnt colonne et vous pouvez utiliser cette colonne pour afficher nombre total de lignes
OriginalL'auteur rs.
Ma solution est similaire à "rs. réponse"
Le résultat de retour comprendra totalrow_count que le premier nom de la colonne
OriginalL'auteur Sarah Filano
J'espère que je ne suis pas trop tard pour sauter sur cette question, mais j'ai couru à travers un très le même problème ce soir. J'ai eu un échange de classe qui était de plus de gonfler le nombre de résultats retournés, car le développeur précédent était à la baisse DISTINCTS et faire juste un SELECT count(*) de la table des jointures. Tout ceci ne résout pas le 2 requête problème, j'ai fini par utiliser une requête imbriquée de sorte qu'il ressemblait à ceci:
Requête D'Origine
Plus Gonflé Les Résultats De La Requête
Mes Résultats De Requête Solution
OriginalL'auteur David