2012-10-16 8 views
12

Gibt es eine Möglichkeit, ROW_NUMBER() in SQL ohne Verwendung von OVER zu verwenden, weil ich Sortierung verwenden möchte.ROW_NUMBER() ohne über in SQL

Ich habe ein Raster mit mehreren sortierbaren Spalten mit konfigurierbaren Zeilen. In meiner Szenarioreihenfolge ist das eine Variable, deshalb kann ich mit ROWNUM keine Bestellung aufgeben.

+2

MySQL hat keine ROW_NUMBER. Warum hast du das mit MySQL markiert? –

+3

Nein [es ist ein obligatorischer Teil der Grammatik] (http://msdn.microsoft.com/en-us/library/ms186734.aspx). Erkläre mehr über dein Wurzelbedürfnis dafür als über deine vorgeschlagene Lösung. –

+0

@MarkByers Entschuldigung durch Fehler, entfernt !! –

Antwort

37
select ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) as number from Task order by RuleId 
+0

ist das gleiche wie: ROW_NUMBER() OVER (Reihenfolge von RuleId), ich möchte auch nicht die gleiche Reihenfolge von Klausel für OVER-Anweisung zu wiederholen. – hazimdikenli

+0

Nein, es ist nicht das Gleiche, aber es erzeugt die gleichen Ergebnisse für diese Abfrage. Sie können (SELECT NULL) stattdessen echte Spalten verwenden, um die Sortierung in 'window' in jedem (ich denke) komplexen Szenario mit row_number() zu überspringen. – SalientBrain