我一直试图解决这个问题几天没有太多运气。我在here和codeproject上找到了有关SQL Server 2000分页的大量资源。
我面临的问题是尝试在一个表上实现某种分页机制,该表具有构成主键的三个键。运算符,CustomerIdentifier,DateDisconnected。
任何帮助/指示都会非常感激
答案 0 :(得分:1)
SQL Server 2000没有方便的row_number
函数,因此您必须使用子查询自动生成行号列,如下所示:
select
*
from
(select
*,
(select count(*) from tblA where
operator < a.operator
or (operator = a.operator
and customeridentifier < a.customeridentifier)
or (operator = a.operator
and customeridentifier = a.customeridentifier
and datedisconnected <= a.datedisconnected)) as rownum
from
tblA a) s
where
s.rownum between 5 and 10
order by s.rownum
但是,您可以按表中的任何列对这些行进行排序 - 它不必使用复合键。它也可能运行得更快!
此外,复合键通常是一个标志。您是否有任何特殊原因不仅仅在这三列上使用具有唯一约束的代理键?