【发布时间】:2016-01-13 19:06:16
【问题描述】:
我已将会计月份存储为表中的 Nvarchar 列,并希望根据会计月份对该表进行排序。
创建表示例( id 英格 ,FiscalMonth Nvarchar(MAX) );
例如:表格包含此数据
Id FiscalMonth
-----------------
1 FY15-Oct
2 FY15-Sep
3 FY15-Jul
4 FY15-Aug
现在,如果我按 FiscalMonth 列的顺序对该表进行排序,结果将是:
SELECT * FROM sample ORDER BY FiscalMonth;
结果:
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
有人可以帮助我如何在不更改表架构的情况下解决这个问题吗?
【问题讨论】:
-
你不能花时间解决这个问题,而不是修复设计缺陷吗?将其存储为
date/datetime或两列year和month。格式化不属于数据库。 -
这是mysql还是mssql服务器?因为你有冲突的标签?
-
在我们了解 DBMS 之前,所有答案都是无关紧要的。问题表明他的表包含 NVARCHAR(MAX)。这在 MySQL 中不存在……所以使用 MySQL 的答案可能是多余的。
标签: mysql sql sql-server sql-server-2008