2010-10-22 11 views
39

In Oracle, è possibile eseguire un'istruzione SELECT che restituisce il numero di riga come colonna nel set di risultati.Come seleziono tutte le colonne da una tabella, oltre a colonne aggiuntive come ROWNUM?

Per esempio,

SELECT rownum, column1, column2 FROM table 

rendimenti:

 
rownum  column1  column2 
1   Joe   Smith 
2   Bob   Jones 

Ma io non voglio specificare ogni colonna a mano. Voglio fare qualcosa di simile:

select rownum,* from table 
 
rownum  column1  column2  column3  column4 
1   Joe   Smith   1    2 
2   Bob   Jones   3    4 

Tutte le idee?

+1

ho cambiato la questione titolo, spero che non ti dispiaccia, per riflettere in modo più accurato ciò che eri in realtà dopo. –

risposta

71

Qualificare il * con il nome della tabella:

select rownum, table.* from table 
0

risposta di Dave è grande, vorrei solo aggiungere che è anche possibile farlo mettendo il jolly come prima colonna:

select *,rownum from table 

Works, ma quanto segue non:

select rownum,* from table 

ho testato con MySQL.

+8

"* testato su MySQL *" - senza utilizzare il nome della tabella ('table. *') Questo non funzionerà su Oracle per il quale è stata posta questa domanda. –

+0

Non ha funzionato neanche su DB2 – Ruslan

-2

Sfortunatamente, non penso therei un modo per farlo, più semplice è probabilmente join interno con se stesso, con una tabella in linea di id, COUNT (*), e porre select esterna

Problemi correlati