这里是我的查询:在SQL Server中如何将ROW_Number()与子查询列一起使用?
DECLARE @StartRow INT
DECLARE @PageSize INT
SET @StartRow = 1
SET @PageSize = 5
SELECT ContractID,Property FROM
(
SELECT c.ContractID,
Property =
(
SELECT TOP 1 p.Name
FROM Com.Property p
JOIN VContract.Contract2Property c2p ON c2p.PropertyID=p.PropertyID
WHERE c2p.ContractID=c.ContractID
),
ROW_NUMBER() OVER (ORDER BY Property) as RowNum
FROM VContract.[Contract] c
) as sub
WHERE RowNum BETWEEN @StartRow AND ((@StartRow + @PageSize) - 1)
的问题是(ORDER BY财产)部分。我可以通过c.ContractID而不是Property来订购。 那么如何实现这一目标呢?我需要查找该房产的名称,然后我希望按照该名称进行分类。
这是用来填充一个网站,让分页对我很重要,所以我可以限制多少记录被返回一次。
感谢您的任何帮助。
你意识到了'p.name'值可以是任何可用的值? – 2010-03-05 22:02:48
是的。可以有一个或多个属性分配给合同。对于标题列表puposes,我只需列出其中一个就足够了。这是真实查询的简化版本,其中也包含属性数量。因此,它实际上显示如: ContractID,属性名(10) - 若要弄清楚有实际分配10种性质。您会在详细视图中看到完整的10个。 – user169867 2010-03-06 16:35:32