我有这个代码,可以根据一周的日期名称成功显示订单数量。但是,我想显示相应排序的日期名称。 我有下面的代码:
SELECT
DATENAME(dw, orderDate) AS day_of_week,
COUNT(orderID) AS total_orders
FROM
Orders
GROUP BY
DATENAME(dw, orderDate)
这是输出:但我想要按星期一、星期二、星期三......等排序的天数(名称)。
有什么想法吗?预先感谢您。
我认为您正在寻找带有 DATEPART
参数的
WEEKDAY
,例如
with cte as (
select DateOfTest
from (
values
('19 Oct 2024'),
('18 Oct 2024'),
('17 Oct 2024'),
('16 Oct 2024'),
('15 Oct 2024'),
('14 Oct 2024'),
('13 Oct 2024')
) x (DateOfTest)
)
select *, datename(weekday, DateOfTest)
from cte
order by datepart(weekday, DateOfTest);
退货:
测试日期 | |
---|---|
2024 年 10 月 13 日 | 周日 |
2024 年 10 月 14 日 | 星期一 |
2024 年 10 月 15 日 | 星期二 |
2024 年 10 月 16 日 | 周三 |
2024 年 10 月 17 日 | 星期四 |
2024 年 10 月 18 日 | 周五 |
2024 年 10 月 19 日 | 星期六 |