2012-10-16 106 views
12

有什麼辦法可以在SQL中使用ROW_NUMBER()而不使用OVER,因爲我想使用排序。ROW_NUMBER()沒有在SQL中結束

我有一個具有可配置行的多個可排序列的網格。在我的場景中,順序是可變的,這就是爲什麼我無法使用ROWNUM來下訂單。

+2

MySQL沒有ROW_NUMBER。你爲什麼用MySQL標記這個? –

+3

否[它是語法的必需部分](http://msdn.microsoft.com/zh-cn/library/ms186734.aspx)。更多地解釋你的根本需求,而不是你提出的解決方案。 –

+0

@MarkByers對不起,錯誤,刪除! –

回答

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

是這樣的:ROW_NUMBER()OVER(Order By RuleId),我也不想爲OVER語句重複相同的order by子句。 – hazimdikenli

+0

不,它不相同,但對此查詢產生相同的結果。您可以(SELECT NULL)而不是實列來跳過任何(我認爲)與row_number()的複雜場景中'window'中的排序 – SalientBrain