如何使用已排序的数据库结果返回ROW_NUMBER()?

时间:2013-09-10 09:38:08

标签: sql sql-server sorting jdbc row-number

晚上好,我目前在 squirrel sql 中学习ROW_NUMBER()。我成功从数据库中检索数据,但问题是ROW_NUMBER() OVER () AS R中的R与排序的数据库数据不匹配。需要一些建议和下面的查询提示,谢谢

查询

SELECT COUNT(*) AS RECORDS  FROM (SELECT ROW_NUMBER() OVER () AS R,
somethingAisID, somethingB, somethingC ORDER BY somethingA ) AS T WHERE R>=0
AND R<=100

p / s:数据库行已排序,但R字段与未排序的数据库行匹配。

示例:

从查询中排序的somethingAisID是1,2,3,4,5

从原始数据库表中未排序的somethingAisID是4,5,2,3,1

然后R匹配为4,5,2,3,1

如何查询R匹配为1,2,3,4,5? (已排序的查询)

1 个答案:

答案 0 :(得分:2)

您必须在ORDER BY子句中使用OVER

ROW_NUMBER() OVER (ORDER BY column_name [ASC|DESC]) AS R

这是 SQLFiddle 演示