为什么这个查询不起作用

时间:2017-07-07 06:04:12

标签: sql sql-server

select ROW_NUMBER() over(PARTITION by number order by number) as rn 
from (select t1.id as number,
             t1.name as name from #a as T1 
      join #a T2 on T1.id=T2.id)

为什么此查询无法正常工作

显示错误.....

  

Msg 102,Level 15,State 1,Line 6   ')'附近的语法不正确。

1 个答案:

答案 0 :(得分:3)

MSSQL要求派生表(from子句中的子选择)为named。只需将您的查询更改为:

select ROW_NUMBER() over(PARTITION by number order by number)as rn 
from 
(  
select t1.id as number,t1.name as name from  #a as T1  join #a T2 on T1.id=T2.id 
) subquery1

应该解决你的问题。