TSQL pour sélectionner les 10 dernières lignes d'une table?
J'ai une table qui contient 300 millions de lignes, et un index cluster sur le [DataDate] colonne.
Comment puis-je sélectionner les 10 dernières lignes de ce tableau (je veux trouver la date la plus récente dans le tableau)?
Base de données: Microsoft SQL Server 2008 R2.
Mise à jour
Les réponses ci-dessous fonctionne parfaitement - mais seulement si il existe un index cluster sur [DataDate]. La table est, après tout, 300 millions de lignes, et un naïf requête prendre des heures pour exécuter plutôt que des secondes. Le plan de requête est l'aide de l'index cluster sur [DataDate] pour obtenir des résultats dans un délai de quelques dizaines de millisecondes.
Toutes les colonnes, triés par [DataDate].
OriginalL'auteur Contango | 2011-06-26
Vous devez vous connecter pour publier un commentaire.
TOP
l'horodatage est l'inverse: il a été répondu "16 minutes ago" vs "15 minutes ago". C'est plus correct car il sélectionne une colonne: SÉLECTIONNEZ * utiliser un plan légèrement différent
Merci, mais ba__ami a répondu le premier ...
Les exigences ici est d'obtenir les 10 dernières lignes, pas le dernier 10
DataDate
valeurs... cela signifie Que je suis devenu plus tard, mais avec la bonne réponse 😉Shahda. Ok, marqué ceci comme la réponse. Il y a beaucoup de très honnête et juste des gens, je suis impressionné.
OriginalL'auteur ba__friend
TOP (Transact-SQL) spécifie que seul le premier ensemble de lignes seront retournés à partir du résultat de la requête. Le jeu de lignes peut être un nombre ou un pourcentage de lignes. Le
TOP
expression peut être utilisée dansSELECT
,INSERT
,UPDATE
,MERGE
, etDELETE
consolidés.OriginalL'auteur Akram Shahda
Faire un tri inverse à l'aide de l'ORDRE et l'usage de HAUT.
OriginalL'auteur devuxer