【发布时间】:2010-06-17 19:08:19
【问题描述】:
现在我在 SQL Server 2008 的过程中使用 ROW_NUMBER(),如下所示:
WITH cars as(SELECT carid,mileage,retailprice,imageurl,model,year,
Zips.Distance AS Miles, Manufacturers.mfgName as Make,
dealers.companyname as companyname, CASE @sortby
WHEN 'D' THEN ROW_NUMBER() OVER (ORDER BY Manufacturers.mfgName)
WHEN 'P' THEN ROW_NUMBER() OVER (ORDER BY retailprice)
WHEN 'M' THEN ROW_NUMBER() OVER (ORDER BY mileage)
END as 'rownum'
FROM usedcars INNER JOIN #TempZips Zips ON Zips.ZipCode =usedcars.loczip
left join Manufacturers on Manufacturers.mfgid=usedcars.mfgid
left join dealers on dealers.dealerid = usedcars.dealerid
where usedcars.active=1 and usedcars.dealerid=@dealerid)
select @totalrecords as totalrec,* from cars
where rownum between @skip and @take
在 SQL2000 中是否有与之等效的功能? (ROW_NUMBER 直到 SQL2005 才引入)。
【问题讨论】:
-
为什么在 SQL Server 2008 中开发它?这在 SQL Server 2000 中太尴尬了。
-
如果 SQL 2000 将成为支持的最低数据库,那么所有开发都应该发生在 SQL 2000 中,以防止出现这种情况,即后来产品中的某个功能被“意外”使用。我的建议是建议客户端升级到 SQL 2005 或更高版本,因为改造解决方案以在 SQL 2000 中工作的工作量将超过升级成本。
-
我完全明白。这是我们的客户购买的东西,他们不想升级到 sql server 2008 或 2005
标签: sql sql-server-2005 sql-server-2000