sql - 选择中的自动排序

标签 sql select

我有一个程序在时间示例之间返回每日报告(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/

相关文章:

mysql - 将 .sql 文件从 MSSQL 导入 MySQL

使用外连接时 where 子句中 'OR' 的 SQL 替代方案

mysql - Select count(*) 在 "large"结果集上给出零

mysql - 选择一行中的一个

php - MySQL 选择 CURDATE 和 ORDER

mysql - 替换值中的列引用

sql - 如何让我的 SQL Server Management Studio 接受 .sql 文件

php - 不能在 mysqli_query 上使用 AND 运算符?

grails - Grails选择标签:将样式添加到特定选项

sql - 如何在 SQL Server 中随时间插入纬度/经度?