прямо сейчас я использую ROW_NUMBER() в моей процедуры в SQL Server 2008 следующим образом:ROW_NUMBER альтернатива для SQL Server 2000
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 [email protected])
select @totalrecords as totalrec,* from cars
where rownum between @skip and @take
Есть ли эквивалент этому, что работает в SQL2000? (ROW_NUMBER не был введен до SQL2005).
Почему вы разработали его в SQL Server 2008? Это так неудобно в SQL Server 2000. – gbn
Если SQL 2000 будет минимальным поддерживаемым db, тогда вся разработка должна была произойти в SQL 2000, чтобы предотвратить эту ситуацию, когда функция в более позднем продукте «случайно» используется. Мое предложение было бы рекомендовать, чтобы клиент обновил до SQL 2005 или более поздней версии в качестве усилия по дооснащению решения для работы в SQL 2000, будет больше, чем стоимость обновления. – Thomas
Я полностью понимаю. Это то, что наш клиент купил, и они не хотят обновляться до SQL Server 2008 или 2005. – iosdevnyc