2016-07-25 72 views
2

鑑於T-SQL的工作示例:SELECT *,ROW_NUMBER()OVER甲骨文

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

如果我保持*選擇它拋出以下錯誤ORA-00923: FROM keyword not found where expected

有沒有辦法保持* selector,並使其在oracle pl/sql中工作? (目前我只能用提所有列名達到想要的結果)

+1

這與plsql有什麼關係?如果沒有,請從標籤列表中刪除。謝謝! – mathguy

回答

4

試試這個:

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

這裏一個是表schemaName.Zoo別名。這將生成原始表中的所有列,並在末尾添加row_id列。

+0

完美,它的工作!謝謝 – meta4

+1

當然,在Oracle中,你需要擺脫方括號。 –

+0

問題不在正方形中,它在別名中,支持Microsoft sql *沒有別名,因爲我看到Oracle不支持 – meta4

3

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