我得到了一个错误消息
语法错误(丢失操作员)在查询表达式'r = row_number()上方(Acell order cord by Acell desc分区)'
)'
在Microsoft Access中;我不知道为什么,但是它在Microsoft SQL Server中起作用。
我的查询:
select *
from
(select *, r = row_number() over (partition by ACell order by ACell
desc)
from cellTB) a
where
r <= 5;
请有人帮我吗?
示例数据:CellTB
=================
ACell | RNC
=================
1 | 1
-----------------
1 | 2
-----------------
1 | 3
-----------------
1 | 4
-----------------
1 | 5
-----------------
1 | 6
-----------------
2 | 1
-----------------
2 | 2
-----------------
2 | 3
-----------------
2 | 4
-----------------
2 | 5
-----------------
2 | 6
我只想从MC访问中的重复Acell中选择前五名。
您的代码是 t-sql 。对于访问SQL ,例如,您可以使用我的 rownumber 函数,如前几次:
:顺序行数
MS访问不支持row_number()
(仅切换到另一个数据库的原因之一)。一种使用相关子查询的方法来完成您想要的操作:
select c.*
from cellTB as c
where (select count(*)
from cellTb as c2
where c2.Acell = c.Acell and
c2.id <= c.id -- this is the primary key column
) <= 5;
这假设您的表有一个主键,在此示例中称为id
。