我不知道这段代码有什么问题,它现在给我一天的错误:
select row_number() over(order by s.title) as rowNumber, s.id
from story as s
表定义:
id bigint
title nvarchar(100)
content ntext
数据库:SQL Server Compact 4.0.8482.1
错误:
解析查询时出错。 [令牌行号= 1,令牌行偏移= 22,令牌错误=超过]
我做了什么:
我在这里搜索了同样的问题,但解决方案不适用于我的,我需要row_number
功能如此糟糕。
答案 0 :(得分:6)
正如ErikEJ已经提到的那样 - ROW_NUMBER
在SQL Server Compact Edition中根本不存在 - 即使在最新的4.0版本中也不存在。
但是,如果您尝试使用ROW_NUMBER
来分页数据,那么SQL Server Compact Edition 4.0也支持通过SQL Server 2012中显示的新关键字进行服务器端分页 - 请参阅{{ 3}}了解所有细节。
您应该能够写出类似的内容:
SELECT (columns)
FROM Story s
ORDER BY Title
OFFSET 20 ROWS
FETCH NEXT 10 ROWS ONLY;
答案 1 :(得分:3)
SQL Server CE没有row_number。它也不能做标量子查询,也可以用来获取rownumber。
但你可以做不等式连接......计算连接数。
这会给你一个rownumber。
select count(r.id) as Row_Number, s.id
from story as s
inner join story as r
on s.id >= r.id
group by s.id
答案 2 :(得分:2)
SQL Server Compact中没有row_number - 你能使用IDENTITY(不确定你要做什么)?