sql - Oracle:使用 'order by' 子句显示行号

标签 sql oracle

我想知道如何为正在使用订单的 sql 语句打印行号。
目前我试过 ROWNUM但据我所知,它仅适用于未排序的结果集。

SELECT rownum, a.lg_id, a.full_name, a.sort_order
  FROM activity_type_lang a
  where a.lg_id = 'en'
  order by a.full_name;

TIA

最佳答案

除了嵌套查询,您还可以使用分析函数

SELECT row_number() OVER (ORDER BY a.full_name),
       lg_id,
       full_name,
       sort_order
  FROM activity_type_lang a
 WHERE a.lg_id = 'en'
 ORDER BY a.full_name

如果您想更改关系的处理方式,使用分析函数也更容易。您可以更换 ROW_NUMBER与 RANK 或 DENSE_RANK .

关于sql - Oracle:使用 'order by' 子句显示行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1377825/

相关文章:

mysql - 查询找到玩得最多的敌人

java - JOOQ从表中获取记录并将其插入到另一个表中

mysql - SQL 注入(inject)和多行注释

java - 在 Oracle DB 上执行 PreparedStatement 插入 Blob 时出现 NullPointerException

sql-server - ORACLE/SQL Server 中的减号与除外差异

sql - 查看在 oracle 上运行的参数化查询

sql - SQL Server 存储过程中 IF ELSE 的替代方法

sql - 从 tbl_dbi 中提取 SQL 作为字符串的首选方法是什么?

php - 用户名冲突的解决方案

java - 如何使用 Hibernate Session.doWork(...) 进行保存点/嵌套事务?