【发布时间】:2012-06-01 15:54:11
【问题描述】:
我使用ROW_NUMBER() 函数从数据库表中获取 50 x 50 项。@From 参数是从中开始抓取 50 行的行。 (第一次是 1 即 51,101,151 等)
我将参数 @CityId 传递给存储过程,如果数据库中的前 60 行是 cityId=1 并且 cityId = 2 在第 61 行,则此存储过程不返回结果。
但是,如果我通过 @From 参数 51 而不是它返回我的结果。
我在这里做错了什么?
SELECT RowConstrainedResult.*
FROM ( SELECT ROW_NUMBER() OVER
( ORDER BY f.ItemCreatedOnDate DESC ) AS RowNum,
f.*
FROM (
SELECT
t.ItemIdId,
t.ItemTypeId,
t.CreatedOnDate as ItemCreatedOnDate,
t.CityId as CityId
FROM dbo.Items as t
) f) AS RowConstrainedResult
WHERE RowNum >= @From
AND RowNum < @From + 50
AND CityId = @CityId
【问题讨论】:
标签: sql sql-server database tsql row-number