2010-10-22 7 views
39

Dans Oracle, il est possible de faire une instruction SELECT qui renvoie le numéro de ligne en tant que colonne dans votre jeu de résultats.Comment puis-je sélectionner toutes les colonnes d'une table, ainsi que des colonnes supplémentaires comme ROWNUM?

Par exemple,

SELECT rownum, column1, column2 FROM table 

retours:

 
rownum  column1  column2 
1   Joe   Smith 
2   Bob   Jones 

Mais je ne veux pas spécifier chaque colonne à la main. Je veux faire quelque chose comme:

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

Toutes les idées?

+1

J'ai changé la question titre, espérons que cela ne vous dérange pas, de refléter plus précisément ce que vous étiez réellement après. –

Répondre

71

Qualifier le * avec le nom de la table:

select rownum, table.* from table 
0

La réponse de Dave est grand, je voudrais simplement ajouter qu'il est également possible de le faire en plaçant le caractère générique comme la première colonne:

select *,rownum from table 

Works, mais ce qui suit ne:

select rownum,* from table 

Je l'ai testé sur MySQL.

+8

"* testé sur MySQL *" - sans utiliser le nom de la table ('table. *') Cela ne fonctionnera pas sur Oracle pour lequel cette question a été posée. –

+0

N'a pas fonctionné sur DB2 non plus – Ruslan

-2

Unfortuantely, je ne pense pas que therei façon sa faire, est plus facile probablement intérieure se joindre à lui-même avec une table en ligne d'id, count (*), et mettre l'instruction select externe

Questions connexes