2017-09-25 107 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。 –