我在报告中有一个组,我必须在该组中使用行号,我想知道是否有方法使用表达式显示行号,或者我是否必须修改我的Store过程并包含该组的行号。
是的,行号就是答案。像这样使用它
SELECT ROW_NUMBER() OVER (PARTITION BY Col1, Col2, ... ORDER BY Col1) AS recID
以下是如何在SQL中进行分页
DECLARE @startRow INT
SET @startrow = 50
;WITH cols
AS
(
SELECT table_name, column_name,
ROW_NUMBER() OVER(ORDER BY table_name, column_name) AS seq,
ROW_NUMBER() OVER(ORDER BY table_name DESC, column_name desc) AS totrows
FROM [INFORMATION_SCHEMA].columns
)
SELECT table_name, column_name, totrows + seq -1 as TotRows
FROM cols
WHERE seq BETWEEN @startRow AND @startRow + 49
ORDERBY seq
您可以在Reporting Services中使用RowNumber函数。
从SQL Server 2005开始,这也可以在SQL代码中使用ROW_NUMBER()来完成。
对于简单组来说,这两种方式都不是更好,但是如果你有动态分组,你可以更好地使用SSRS RowNumber来计算组/范围