Wie wähle ich alle Spalten aus einer Tabelle sowie zusätzliche Spalten wie ROWNUM aus?


73

In Oracle ist es möglich, eine SELECTAnweisung auszuführen, die die Zeilennummer als Spalte in Ihrer Ergebnismenge zurückgibt.

Zum Beispiel,

SELECT rownum, column1, column2 FROM table

kehrt zurück:

rownum        column1        column2
1 Joe Smith
2 Bob Jones

Aber ich möchte nicht jede Spalte von Hand angeben. Ich möchte so etwas tun wie:

select rownum,* from table
Rownum        Spalte1        Spalte2        Spalte3        Spalte4
1 Joe Smith 1 2
2 Bob Jones 3 4

Irgendwelche Ideen?

Antworten:


128

Qualifizieren Sie das * mit dem Namen der Tabelle:

select rownum, table.* from table

7

Daves Antwort ist großartig. Ich möchte nur hinzufügen, dass dies auch möglich ist, indem der Platzhalter als erste Spalte platziert wird:

select *,rownum from table

Funktioniert, aber das Folgende wird nicht:

select rownum,* from table

Ich habe auf MySQL getestet.


16
" unter MySQL getestet " - ohne Verwendung des Tabellennamens ( table.*) funktioniert dies nicht unter Oracle, für das diese Frage gestellt wurde.
a_horse_with_no_name

-7

Leider glaube ich nicht, dass es einen Weg gibt, dies zu tun. Am einfachsten ist es wahrscheinlich, sich mit einer Inline-Tabelle von id, count (*) und einer äußeren select-Anweisung mit sich selbst zu verbinden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.