【发布时间】:2011-09-16 10:48:28
【问题描述】:
我刚刚在一些代码中发现了一个错误。有一个类似这样的SQL:
SELECT convert(varchar(11),COL1,106) as COL1
FROM TAB
ORDER BY COL1 DESC
现在,返回的 COL1 值格式如下所示:
17 Sep 2001
07 Mar 2011
存储在数据库中的值如下所示:
2011-03-07 00:00:00
2001-09-17 00:00:00
但是因为 ORDER BY 子句使用了
17 Sep 2001
07 Mar 2011
值,排序不正确。由于我无法更改列名(查询和使用它的应用程序之间存在很大的依赖关系),我必须修改和修复 SQL 语句以返回具有正确顺序的行。有没有办法以 ORDER BY 子句使用存储在行列中的实际值而不是转换的方式来修改它?我试过了:
ORDER BY TAB.COL1 DESC
但它也没有工作。
谢谢,帕维尔
【问题讨论】:
标签: sql sql-server tsql sql-server-2000