February 8, 2005 at 4:49 pm
Hi
I've had to do a project in SQL Server and, although I haven't encountered it yet, I'm curious. In MySQL you can say 'limit 50, 50' to start at the 50th record and return 50 records, i.e. returns records 50 - 100.
How do you do the same with SQL Server? I know about top 100 but what if I want to only start at the 50th result?
Thanks,
Alison
February 9, 2005 at 11:07 am
I have seen a number of examples using Row Identifiers for sending the first 50, then the next 50, etc. records to an asp output page. I know of no function in SQL to allow you to start at the 50th record. If your output has some type of identity, you could put the TOP 49 into a #TempTable, then SELECT TOP 50 WHERE Identity NOT IN( SELECT Identity FROM #TempTable).
You can also use SELECT TOP 50 WHERE NOT EXISTS( SELECT * FROM #TempTable) if you have no identity field. Inefficient, but it should work.
These are bulldozer approaches...
I wasn't born stupid - I had to study.
February 9, 2005 at 11:20 am
Here's an exemple that is not too bulldozer but it still ain't too pretty :
USE pubs
DECLARE @var1 VARCHAR(12)
DECLARE @var2 VARCHAR(30)
SET ROWCOUNT 17
SELECT @var1 = au_id, @var2 = au_lname FROM authors ORDER BY au_lname, au_id
SET ROWCOUNT 0
SELECT TOP 3 * FROM authors
WHERE (au_id >= @var1 AND au_lname=@var2) OR ( au_lname>@var2)
ORDER BY au_lname, au_id
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy