Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5995315
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T23:56:32+00:00 2026-05-22T23:56:32+00:00

DECLARE @OrdersTemp TABLE ( OrderId UNIQUEIDENTIFIER ) INSERT INTO @OrdersTemp SELECT ord.Id FROM Orders

  • 0
DECLARE @OrdersTemp TABLE
(
   OrderId UNIQUEIDENTIFIER
)

INSERT INTO @OrdersTemp
  SELECT ord.Id
  FROM Orders 

--all rows count
SELECT  
    @RowsCount = COUNT(DISTINCT ord.Id)
FROM   Orders 


--@RowsCount = 5. It's right!

--second table with paging
DECLARE @OrdersTempWithPaging TABLE
(
    OrderId UNIQUEIDENTIFIER
)

INSERT INTO @OrdersTempWithPaging
   SELECT OrderId
   FROM  (SELECT DISTINCT OrderId,
                 ROW_NUMBER() OVER (ORDER BY OrderId) AS RowNum
          FROM @OrdersTemp) AS alias
          WHERE 
              RowNum BETWEEN (@PageIndex - 1) * @PageSize + 1
                     AND @PageIndex * @PageSize

SELECT * FROM @OrdersTempWithPaging
--10 or more rows. It's wrong.

Why does @OrdersTempWithPaging return wrong amount of rows? How do I avoid it?

UPDATE:
The statement below returns 25 = 5*5 rows (instead of 5)

   INSERT  INTO @OrdersTempWithPaging
                SELECT    OrderId
                FROM    (
                          SELECT    OrderId,
                                    ROW_NUMBER() OVER (ORDER BY OrderId ) AS RowNum
                          FROM      @OrdersTemp ) AS alias
                --WHERE   RowNum BETWEEN ( @PageIndex - 1 ) * @PageSize + 1
                             --  AND     @PageIndex * @PageSize
  SELECT * FROM @OrdersTempWithPaging
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T23:56:33+00:00Added an answer on May 22, 2026 at 11:56 pm

    Try this (reversing the DISTINCT use):

    INSERT INTO @OrdersTempWithPaging
       SELECT DISTINCT OrderId
       FROM  (SELECT OrderId,
                     ROW_NUMBER() OVER (ORDER BY OrderId) AS RowNum
              FROM @OrdersTemp) AS alias
       WHERE 
           RowNum BETWEEN (@PageIndex - 1) * @PageSize + 1
                  AND @PageIndex * @PageSize
    

    If you need only distinct order-ids, you could have:

    INSERT INTO @OrdersTemp
      SELECT DISTINCT ord.Id
      FROM Orders 
    

    and then:

    INSERT INTO @OrdersTempWithPaging
       SELECT OrderId
       FROM  (SELECT OrderId,
                     ROW_NUMBER() OVER (ORDER BY OrderId) AS RowNum
              FROM @OrdersTemp) AS alias
       WHERE 
           RowNum BETWEEN (@PageIndex - 1) * @PageSize + 1
                  AND @PageIndex * @PageSize
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

DECLARE @t TABLE(Words VARCHAR(100)) INSERT INTO @t SELECT 'Stack Overflow' UNION ALL SELECT 'EQUATORIAL'
DECLARE @result varchar(MAX) SELECT NAME FROM Table WHERE ID = @Id I need to
OMG! What am I doing wrong? declare @WTF TABLE ( OrderItemId int ) SELECT
declare begin for i in (select * from emp) loop if i.sal=1300 then update
declare @top int set @top = 5 select top @top * from tablename Is
Given the following: declare @a table ( pkid int, value int ) declare @b
DECLARE @TestVal int SET @TestVal = 5 SELECT CASE WHEN @TestVal <=3 THEN 'Top
declare @test varchar(20) set @test = 'VALUE' exec(' select '+@test+' ') This returns: Invalid
declare @var sysname declare @sql varchar(5000) set @var = 'Table_name' set @sql = 'select
DECLARE @UDFLabel1 VARCHAR(50), @UDFLabel2 VARCHAR(50), @UDFLabel3 VARCHAR(50), @UDFLabel4 VARCHAR(50), @UDFLabel5 VARCHAR(50) SELECT @UDFLabel1 =

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.