2016-11-03 26 views
2

我有一個查詢從表中獲取月份名稱。但是這個列不是日期時間數據類型,這是一個v archar列。我如何根據月份名稱按升序對其進行排序?
這是我現在得到的輸出。如何在使用sql查詢進行檢索時對錶中的月份進行排序?


十一月

這是我的查詢下面我有附加的一個月,日和年

select distinct(payemnt_month) as month from payement_details 
+0

表中是否有其他相應的日期或日期時間列? – Squirrel

+0

不,我沒有任何其他列日期時間 – Mike

回答

3

使用。那麼我每月提取數

select * from payment_details order by DATEPART(MM,payemnt_month+'01'+'00') 

更新 如果您的查詢像下面可能的更新。

SELECT * FROM 
(
SELECT DISTINCT month, 
       Datepart(MM, payemnt_month+ '01' + '00') MONTHNO 
FROM payment_details)A 
ORDER BY MONTHNO 

或類似如下,如果你沒有任何問題,保持一個月沒有

SELECT DISTINCT month, 
         Datepart(MM, payemnt_month+ '01' + '00') MONTHNO 
     FROM payment_details 
order by month,Datepart(MM, payemnt_month+ '01' + '00') 
+0

我試圖改變查詢我的。但它給了我以下錯誤。消息145,15級,狀態1,行4 如果指定了SELECT DISTINCT,則ORDER BY項目必須出現在選擇列表中。 – Mike

+0

明確後指定了哪些和所有列?你能發佈你的整個查詢嗎? – Buddi

+0

這是整個查詢 – Mike

0

只要把ORDER BY子句:

select distinct(payemnt_month) as month from payement_details order by payemnt_month 
2
ORDER BY CASE WHEN payment_month='August' THEN 8 
       WHEN payment_month='November' THEN 11 
       WHEN payment_month='October' THEN 10 
       WHEN payment_month='September' THEN 9 END 

對準您的ORDER BY條款如上所述,並根據需要添加剩餘的月份。

相關問題