2017-09-25 92 views
-4

的任何人都可以提出如何將nvarchar列這個樣本數據進行排序:在SQL Server排序nvarchar列其中包括字母數字

Month  ExpectedResult 
------ ---------------- 
Aug15  Aug15 
Nov15  Oct15 
Oct15  Nov15 
Sept16  Sept16 
+2

您不應該以字符串形式存儲日期/時間和相關格式。這是第一個問題。例如,如果您將其作爲日期存儲,則可以自動對其進行排序。現在您需要一個複雜的(並且很慢的)過程來將此字符串轉換爲可排序的值。 – GolezTrol

+0

嘿!!謝謝你的回覆......但那是如何主數據是..現在我需要排序它..我嘗試轉換n投.. ..但它不工作。你能幫助我嗎? –

+0

使用子串獲取月份和年份。將年份轉換爲整數並使用大小寫將月份名稱轉換爲月份編號。 – Peter

回答

0

您可以通過CONVERT(日期時間,'01' +星期一)使用順序。

這是工作的罰款對我來說,我已經用下面的查詢:

選擇週一從(選擇「Aug15」週一 工會 選擇「Nov15」 工會 選擇「Oct15」 工會 選擇'Sep16')作爲CONVERT的命令(datetime,'01'+ Mon);

+0

是的,實際上列是MonYY格式(即Aug15),要將此字符串更改爲日期格式,我向字符串添加了'01',以便Aug15變成01Aug15,然後使用convert函數將此字符串更改爲datetime。 –