【发布时间】:2011-08-15 22:02:36
【问题描述】:
我的表中有datetime 列,其中包含以下数据:
2011-03-23
2011-04-19
2011-04-26
2011-05-26
我想选择不同的mon-yyyy 格式输出,按报告日期降序排列。我们只需要在 SQL 语句中选择一列
此 SQL 有效,但我想按 ReportDate 列排序
SELECT distinct SUBSTRING (convert(varchar, ReportDate, 100),1,3) +'-'+
SUBSTRING (convert(varchar, ReportDate, 100),8,4 )
FROM [EnvelopsDB].[dbo].[Envelopes]
输出
Apr-2011
Mar-2011
May-2011
此 SQL 给出错误:
SELECT distinct SUBSTRING (convert(varchar, ReportDate, 100),1,3) +'-'+
SUBSTRING (convert(varchar, ReportDate, 100),8,4 )
FROM [EnvelopsDB].[dbo].[Envelopes]
order by ReportDate
错误:
消息 145,第 15 级,状态 1,第 2 行
如果 SELECT DISTINCT 是 ORDER BY 项目必须出现在选择列表中 指定。
获得所需输出的最佳 SQL 查询是什么?
【问题讨论】:
标签: sql sql-server-2008