【问题标题】:ROW_NUMBER Alternative for SQL Server 2000ROW_NUMBER SQL Server 2000 的替代方案
【发布时间】: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


【解决方案1】:

您可以创建一个带有标识列的临时表,并将您的数据插入其中。

然后使用临时表。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多