我已将会计月份存储为表中的Nvarchar列,并希望根据会计月份对该表进行排序。
创建表示例(
身份证
,最大值
);
例:表包含此数据
Id FiscalMonth
-----------------
1 FY15-Oct
2 FY15-Sep
3 FY15-Jul
4 FY15-Aug
现在,如果我按fiscalmon列顺序对这个表进行排序,结果将是:
在第一个月的样品订单中选择*;
结果:
Id FiscalMonth
-----------------
4 FY15-Aug
3 FY15-Jul
1 FY15-Oct
2 FY15-Sep
但我希望结果是
预期产量:
Id FiscalMonth
-----------------
3 FY15-Jul
4 FY15-Aug
2 FY15-Sep
1 FY15-Oct
有人能帮助我在不改变表模式的情况下解决这个问题吗?
最佳答案
要按不同年份和月份进行排序,MS SQL中的order by
应按以下方式工作:
SELECT [Id],[FiscalMonth]
From Sample
order by convert(date,Substring([FiscalMonth],6,3)+ ' 01 ' + Substring([FiscalMonth],3,2),103)
这假设
FiscalMonth
列的格式始终相同。