我尝试创建一个存储过程,该存储过程需要从哪里开始,要显示的最大行数和位置。它们返回HouseID
的列表和位置,但我也希望它包含另一个名为dbo.House
的表中的“房屋名称”,该表中有HouseId
将其链接到位置。我将如何去添加第二个表。使用ROW_NUMBER的SQL Server存储过程
感谢,
CREATE PROCEDURE dbo.basicHouseSearch
@StartIndex int,
@MaxRows int,
@HouseLocation NVarChar(50)
AS
BEGIN
SET NOCOUNT ON;
Select
Location.HouseID, CityTown
FROM
(SELECT
ROW_NUMBER() OVER (ORDER by Location.HouseID) as RowNumber,
Location.HouseID,
CityTown
FROM dbo.Location) Location
WHERE
RowNumber >= @StartIndex
AND ROWNUMBER < (@StartIndex + @MaxRows)
END
GO
在您的子查询中添加一个连接,并在外部查询中添加该列。 – 2014-09-12 20:29:59
或更好的是,加入子查询的结果 - 没有保证,但可能会更好地强制SQL Server在加入之前进行过滤。 – 2014-09-12 20:30:36
什么版本的Sql Server?有一种新的OFFSET/FETCH技术对于这种分页更好。 – 2014-09-12 20:42:20