Comment faire pour récupérer des lignes spécifiques de table SQL Server?
Je me demandais est-il un moyen de récupérer, par exemple, la 2e et la 5e ligne de la table SQL qui contient 100 lignes?
J'ai vu quelques solutions avec WHERE
clause, mais elles supposent toutes que la colonne sur laquelle WHERE
clause est appliquée est linéaire, commençant à 1.
Est là une autre façon d'interroger une table SQL Server pour une des lignes spécifiques dans le cas de la table n'ont pas de colonne dont les valeurs commencent à 1?
P. S. - je sais que pour une solution avec des tables temporaires, où vous copiez votre instruction select de sortie et l'ajouter linéaire d'une colonne à la table. Je suis à l'aide de T-SQL
qu'est-ce que votre état pour la récupération de données sql
Quel genre de SQL utilisez-vous? MySQL, MSSQL, Postgresql, etc?
qui SGBD que vous utilisez? Rownum-les fonctionnalités sont maintenant disponibles dans la plupart des systèmes, mais sont encore définis par le système.
mon état de santé? J'ai du renvoyer les lignes sur le spot de 5,6 ou 7
Il n'y a pas une telle chose comme la "2ème" ligne dans une table relationnelle. Vous avez besoin d'avoir une sorte de "commander des critères" ne être en mesure d'identifier le "2ème" de ligne.
Quel genre de SQL utilisez-vous? MySQL, MSSQL, Postgresql, etc?
qui SGBD que vous utilisez? Rownum-les fonctionnalités sont maintenant disponibles dans la plupart des systèmes, mais sont encore définis par le système.
mon état de santé? J'ai du renvoyer les lignes sur le spot de 5,6 ou 7
Il n'y a pas une telle chose comme la "2ème" ligne dans une table relationnelle. Vous avez besoin d'avoir une sorte de "commander des critères" ne être en mesure d'identifier le "2ème" de ligne.
OriginalL'auteur Antun Tun | 2013-09-13
Vous devez vous connecter pour publier un commentaire.
Essayer cela,
OriginalL'auteur Rohan
Avec SQL Server:
La
id
que vous devrez remplacer votre clé primaire ou de votre commande,YourTable
qui est de votre table.C'est une expression de table commune (Common Table Expression) donc ce n'est pas une table temporaire. C'est quelque chose qui sera élargi à l'ensemble, avec votre requête.
Je vous ai dit vous avez besoin d'une colonne avec incrément linéaire? 🙂
Si vous avez la
top
clause, vous avez besoin d'un autre ordre, ou il n'y a aucune garantie que vous obtiendrez les lignes 2 et 5.Vous avez probablement raison... Alors que j'ai toujours obtenir les lignes ordonnées par le
ROW_NUMBER()
si je ne l'utilise, c'est probablement un effet secondaire, pas quelque chose de certain.OriginalL'auteur xanatos
Il n'y a pas de 2e ou 5e ligne de la table.
Il est seulement le 2e ou 5e entraîner dans un jeu de résultats que vous revenez, tel que déterminé par l'ordre que vous spécifiez dans cette requête.
OriginalL'auteur podiluska
Si vous utilisez SQL Server 2005 ou au-dessus, vous pouvez utiliser
Row_Number()
fonction. Ex:Veuillez noter que
yourOrderingCol
va décider de la valeur de numéro de ligne (c'est à dirern
).OriginalL'auteur Kaf