2015-11-11 60 views
0

我正在使用SQL Row_Number來獲取一個raking列;SQL Row_Number逆序

ROW_NUMBER() OVER(PARTITION BY [email protected] ORDER BY di.Create_date,di.Create_time_hh,di.Create_time_mm) as [Rank] 

但是我需要顛倒這個順序。我試過在Asc中添加,但這似乎沒有什麼區別?!

PolicyRef @ is varchar(255),Create_Date是一個日期時間,但其時間部分全部爲00.00.00.000,Create_Time_hh是一個數字(這是創建該記錄的當天的小時數,但存儲爲09, 17等),Create_Time_mm也是一個數字(這是記錄創建當天的最短時間,但又被存儲爲19,57等)。

爲什麼我不能以通常的方式重新排序?

謝謝

+2

。 'ASC'是默認的排序順序(還有:您使用的是哪個DBMS?) –

+0

這似乎也沒有改變任何東西!我如何找出DBMS? – Becky

+1

@Becky - DBMS - 您正在使用哪種特定產品? [標籤:SQL服務器] [標籤:甲骨文]? [標籤:MySQL的]?還有別的嗎?一般來說,任何標籤爲[tag:sql]的問題都應該包含您正在使用的產品的標籤。 –

回答

1

使用「desc」命令降序。升序(asc)是默認值,如果未聲明,將由ASC進行排序。

也許這可能有幫助? OVER clause. How to order by multiple columns within a CASE clause?

你也可以。如果你想扭轉你需要使用`DESC`訂貨訂單由多個列字段,即

SELECT Column1, Column2, Column3 
FROM Table1 
Order By Column1 desc, Column2 desc 
+0

由desc訂購不會改變它,我不明白! – Becky

+0

那麼你有三個領域,你有一個desc?一個還是全部三個? 'ORDER BY di.Create_date DESC,di.Create_time_hh DESC,di.Create_time_mm DESC' –

+0

OH!我沒有意識到你需要爲每一個專欄,輝煌,這是做的伎倆,非常感謝你! – Becky