SQL server怎么获取某条信息在数据库表中排第几位?
例如我要取ID 为330的信息排第几位? 数据是按rootid,orders排序的, 表名Web
数据库是SQL2000数据库附加到SQL2005上的
Select * From (
Select RW=Row_number()Over(Partition By rootid,orders),* From Web
) A Where ID=330
RW=Row_number() 这个提示 'row_number' 不是可以识别的 函数名。
@一个小白: SQL Server版本是多少
select * from (select rownum,ms.* from (
select ms.ID from Web ms order by rootid,orders) ms) tb
where tb.ID='330'
除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
排序取自动生成的id
Select * From (Select RW=Row_number() Over(order By rootid,orders),* From Web) A Where ID=330
2005是支持row_number函数的
原来是SQL2000的数据库附加到SQL2005上的 所以RW=Row_number()识别不了。