2016-07-25 7 views
2

ein funktionierendes Beispiel in T-SQL Gegeben:SELECT *, ROW_NUMBER() OVER in Oracle

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

Wenn ich * Wähler halten es wirft folgende Fehler ORA-00923: FROM keyword not found where expected.

Gibt es eine Möglichkeit, * Selektor zu halten, und es in Oracle PL/SQL arbeiten lassen? (Zur Zeit konnte ich nur gewünschte Ergebnis erzielen, indem alle Spalten Namen zu nennen)

+1

Was hat das mit plsql zu tun hat bekam? Wenn nichts, bitte aus der Tag-Liste entfernen. Vielen Dank! – mathguy

Antwort

4

Try this:

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

hier ein ist Alias ​​für die Tabelle schemaName.Zoo. Dadurch werden alle Spalten aus der ursprünglichen Tabelle generiert, und am Ende wird die Spalte row_id hinzugefügt.

+0

perfekt, es macht den Job! Danke – meta4

+1

Natürlich, mit Oracle müssen Sie die quadratischen Klammern loswerden. –

+0

Problem war nicht in Quadraten, es war in Alias, Microsoft sql unterstützt * ohne Alias, Oracle, wie ich sehe nicht – meta4

3

Verwenden SELECT t.*, ROW_NUMBER ... FROM tablename t;