SELECT *, ROW_NUMBER() 在 Oracle 中结束

SELECT *, ROW_NUMBER() OVER in Oracle

给出 T-SQL 中的一个工作示例:

SELECT *, ROW_NUMBER() OVER (ORDER BY name ) as row_id
 FROM 
[schemaName].[Zoo]

如果我保留 * 选择器,它会抛出以下错误 ORA-00923: FROM keyword not found where expected

有没有办法保留 * 选择器,并使其在 oracle pl/sql 中工作? (目前我只能通过提及所有列名才能达到想要的结果)

试试这个:

SELECT a.*, ROW_NUMBER() OVER (ORDER BY name ) as row_id FROM schemaName.Zoo a

这里a是tableschemaName.Zoo的别名。这将从原始 table 生成所有列,并在末尾添加 row_id 列。

使用SELECT t.*, ROW_NUMBER ... FROM tablename t;