sql - 如何返回带有排序数据库结果的 ROW_NUMBER() ?

标签 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? (排序查询)

最佳答案

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

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

这里是SQLFiddle 演示

关于sql - 如何返回带有排序数据库结果的 ROW_NUMBER() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18715452/

相关文章:

mysql - 自己数据库中的外部数据(键)映射

c# - 从 Entity Framework Core 访问 SQL 存储过程的安全方式

SQL 提示在执行前将整个表加载到 RAM 中?

java - 对日期 ListArray 以及标题的第二个数组进行排序

php - 请将 SQL 查询与 PHP 帮助合并

sql - MySQL 多表连接 ID

asp.net - asp.net 如何去除空格?

php - 我如何将此类转换为与 mssql 一起使用

c# - 在 C# 中按字母顺序对数组进行排序

mysql - 索引位域的排序顺序