首页 新闻 搜索 专区 学院

sql server 查询出来的两个结果怎么合并?

0
[已解决问题] 解决于 2015-05-16 23:55

我的目的是查出近期节日,比如现在9月20号,则9月20号及以后的排在前面,到12月份时就从1月份排起到9月19号,我的语句如下,怎样把查询结果 合并。或者有其他更好的语句?

select ID,FestDay,DAY(FestDay),GETDATE() from ER_ForeignCulture where Class1=2 and Class2=3 and (MONTH(FestDay)>MONTH(GETDATE()) or (MONTH(FestDay)=MONTH(GETDATE()) and Day(FestDay)>=Day(GETDATE()))) order by MONTH(FestDay),DAY(FestDay);
select ID,FestDay,DAY(FestDay),GETDATE() from ER_ForeignCulture where Class1=2 and Class2=3 and ID not in(select ID from ER_ForeignCulture where Class1=2 and Class2=3 and (MONTH(FestDay)>MONTH(GETDATE()) or (MONTH(FestDay)=MONTH(GETDATE()) and Day(FestDay)>=Day(GETDATE())))) order by MONTH(FestDay),DAY(FestDay);

Gangers的主页 Gangers | 初学一级 | 园豆:173
提问于:2014-12-20 16:18
< >
分享
最佳答案
0

union all

奖励园豆:5
小咩快跑 | 初学一级 |园豆:23 | 2014-12-20 16:26

谢了,不过还少了点东西,自己解决了。

Gangers | 园豆:173 (初学一级) | 2014-12-22 22:51
其他回答(2)
0

支持一楼

| 园豆:332 (菜鸟二级) | 2014-12-22 11:06
0

最终改成这样(select * from (select TOP 100 PERCENT *  from  ER_ForeignCulture where Class1=2 and Class2=3 and (MONTH(FestDay)>MONTH(GETDATE()) or (MONTH(FestDay)=MONTH(GETDATE()) and Day(FestDay)>=Day(GETDATE())))  order by MONTH(FestDay),DAY(FestDay))a)
union all
(select * from (select TOP 100 PERCENT *   from ER_ForeignCulture where Class1=2 and Class2=3 and ID not in(select ID from ER_ForeignCulture where Class1=2 and Class2=3 and (MONTH(FestDay)>MONTH(GETDATE()) or (MONTH(FestDay)=MONTH(GETDATE()) and Day(FestDay)>=Day(GETDATE()))))  order by MONTH(FestDay),DAY(FestDay))b)

主要是union all和order by的共存问题,加上Top 100 PERCENT解决

Gangers | 园豆:173 (初学一级) | 2014-12-22 22:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册