Quelle est la manière la plus efficace de lire la dernière ligne avec SQL Server ?
La table est indexée sur une clé unique -- les valeurs de la clé "inférieure" représentent la dernière ligne.
Quelle est la manière la plus efficace de lire la dernière ligne avec SQL Server ?
La table est indexée sur une clé unique -- les valeurs de la clé "inférieure" représentent la dernière ligne.
Si la table est indexée sur la colonne de tri, alors SQL lira simplement la dernière ligne de la table. Aucun tri coûteux ou balayage complet de la table n'est nécessaire.
Si je dois obtenir les 1000 derniers enregistrements, comment faire, pouvez-vous me le dire ?
Vous aurez besoin d'une sorte de colonne d'identification unique dans votre table, comme une clé primaire à remplissage automatique ou une colonne de date (de préférence la clé primaire). Alors vous pouvez faire ceci :
SELECT * FROM table_name ORDER BY unique_column DESC LIMIT 1
Le site ORDER BY column
lui indique de réorganiser les résultats en fonction des données de cette colonne, et l'option DESC
lui demande d'inverser les résultats (en mettant donc le dernier en premier). Après cela, le LIMIT 1
lui dit de ne retransmettre qu'une seule ligne.
Wow, c'est dur, la question originale ne parlait même pas spécifiquement de SQL Server. La solution ci-dessus est parfaitement légitime même si SQL Server utilise des mots différents pour décrire le même concept. +1
@VinkoVrsalovic ça ne veut pas dire que la réponse est inutile a contrario, même après une décennie. Êtes-vous d'accord avec moi ?
C'est le problème de la communication écrite - il est facile de la lire beaucoup plus durement que ce qui est prévu, surtout quand elle est brève ! Je le sais maintenant et je comprends que la responsabilité incombe à l'auteur. Donc, si je devais écrire ça aujourd'hui, je dirais : "C'est l'idée, bien que vous deviez utiliser TOP au lieu de LIMIT pour SQL Server, car c'est le moteur DMBS marqué dans la question. Voir docs.microsoft.com/fr/us/sql/t-sql/queries/ " @snr
Afin de récupérer la dernière ligne d'une table pour la base de données MS SQL 2005, vous pouvez utiliser la requête suivante :
select top 1 column_name from table_name order by column_name desc;
Note : Pour obtenir la première ligne de la table pour la base de données MS SQL 2005, vous pouvez utiliser la requête suivante :
select top 1 column_name from table_name;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.