21. marts 2005 - 13:27Der er
8 kommentarer og 2 løsninger
Selecte x antal rækker
Hej :-)
Jeg vil gerne lave en sql hvor jeg kan selecte 100 rækker i en tabel. jeg kan få de første 100 ved 'select top 100' men hvad hvis jeg vil have række 200 til 300 ??
Der findes ingen parameter på TOP der kan angive at der skal være 200 til 300.
Du kan måske forklare lidt mere hvorfor du ønsker en sådan select, så er det måske også nemmere at se om der findes alternative måder at løse dit problem på.
Hvis din tabel har en ID-kolonne, kunne du måske sørge for at du får nogle højere IDer ved: Select top 100 * From Tabel Whrere ID > 200
En alternativ måde at gøre det på kunne være
Select top 300 * from table where ID not in(select top 200 ID from Tabel)
Man kan godt undre sig over at det ikke er muligt at angive offset, da det faktisk er en nyttig feature.
Vær dog opmærksom på at principielt bør du kun lave det på readonly data. Hvis data bliver ændret mellem queries, så giver LIMIT m,n er stærkt misvisende billede af data.
Jeg ville nok også heller foreslå en ADO-løsning, da jeg er usikker på om f.eks. Top 300 giver nøjagtig samme resultat hver gang. Det gør det nok på en enkelt tabel, hvis der ikke bliver indsat records i mellemtiden, men hvis du har flere joins, ville jeg lige teste dette inden jeg brugte det seriøst.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.