我使用这个查询分页SQL Server的连接查询问题
SELECT *
FROM
(SELECT ROW_NUMBER() OVER (ORDER BY {0} {1}) AS RowNum, *
FROM Cars
WHERE IdOwner = {2}) AS Rows
WHERE RowNum > {3} AND RowNum < {4}
我想使分页查询2个表,而不是只有一个,因为我现在要做的。
SELECT *
FROM
(SELECT ROW_NUMBER() OVER (ORDER BY {0} {1}) AS RowNum,
Cars.Id, Cars.Make, Cars.Model, Color.Name
FROM Cars
INNER JOIN Color ON Cars.ColorId = Color.Id
WHERE IdOwner = {2}) AS Rows
WHERE RowNum > {3} AND RowNum < {4}
我得到一个Incorrect syntax near the keyword 'WHERE'.
问题解决了。谢谢你们,我这种小白:(
SELECT *
FROM (SELECT ROW_NUMBER() OVER (ORDER BY c.Id ) AS RowNum,
c.Id, c.Make, c.Model, d.ColorName
FROM Car AS c
INNER JOIN Color AS d
ON c.ColorId = d.Id WHERE c.IdOwner=1) AS Rows
WHERE RowNum > 0 AND RowNum < 11
什么的'{0}''.. {4}'?你应该使用参数化的值无论如何不是字符串串联 – 2011-03-09 15:29:15
好吧, s没有直接解决你的问题,但你通常应该在你的程序中分页,而不是在数据库中分页。将相关信息加载到数组中,然后进行分页。 – syrion 2011-03-09 15:30:58
@syrion:如果你有数百万行,你**不会**想把所有的东西都拉回到客户端,然后分页...... – 2011-03-09 15:31:48