我有一个程序在时间示例之间返回每日报告(CreateDate BETWEEN '2012/1/21' AND '2012/2/19')
我想要这个结果
1/21
1/22
1/23
.
2/1
.
.
但是输出是按天自动排序的!!如下:
2/1
2/2
.
2/15
1/21
1/22
1/23
.
.
我不能使用 order by (createdate) 因为我有这个选择:
SELECT COUNT(UserId) AS c, DAY(CreateDate) AS d
FROM dbo.aspnet_Membership
WHERE (CreateDate BETWEEN '2012/1/21' AND '2012/2/19')
GROUP BY DAY(CreateDate)
最佳答案
如果你想按月和日排序,那么你当然需要月份。
而且你总是需要一个 ORDER BY 来保证结果顺序。
SELECT COUNT(UserId) AS c, MONTH(CreateDate) AS m, DAY(CreateDate) AS d
FROM dbo.aspnet_Membership
WHERE (CreateDate BETWEEN '2012/1/21' AND '2012/2/19')
GROUP BY MONTH(CreateDate) AS m, DAY(CreateDate) AS d
ORDER BY MONTH(CreateDate) AS m, DAY(CreateDate) AS d
在这种情况下,您得到的顺序是巧合,因为 GROUP BY(这意味着 MySQL 中的 ORDER BY,而不是其他 RDBMS)
关于sql - 选择中的自动排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294130/