UNION 与 ORDER BY 结合出错的

bluedrumbeat 2004-04-02 04:11:50
测试数据如下:
/*
select 1 as CurMonth,GETDATE() as CurDay INTO TEST_DISP

delete TEST_DISP
insert TEST_DISP values(11,'2003-11-01')
insert TEST_DISP values(12,'2003-12-01')
insert TEST_DISP values(1,'2004-1-01')
insert TEST_DISP values(2,'2004-2-01')
insert TEST_DISP values(3,'2004-3-01')
insert TEST_DISP values(4,'2004-4-01')
insert TEST_DISP values(5,'2004-5-01')

Select * from TEST_DISP

*/

我的查询是从2003年取最后的一天和2004 年的记录按CurDay顺序输出

语句如下
select s.* from
(SELECT top 1 CurMonth,CurDay FROM TEST_DISP where CurDay< '2004-01-01' order by CurDay desc
UNION
SELECT CurMonth,CurDay FROM TEST_DISP where CurDay>= '2004-01-01' ) s order by CurDay

但发现2003的数据总是取在 2003-11-1那一条记录,实际上order by CurDay desc并未起作用,去掉或改成order by CurDay ,仍然如此,问题出在哪里?
...全文
45 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧