您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> union排序的问题

union排序的问题

来源:网络整理     时间:2016/6/24 1:10:39     关键词:

关于网友提出的“ union排序的问题”问题疑问,本网通过在网上对“ union排序的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: union排序的问题
描述:

在一个视图里用了union  在首页显示前几条出来  每个分类都按照最新的时间排序 
如下:

select top 10 id,title,time,kid from News where kid = 1 ORDER BY time DESC
UNION 
select top 6 id,title,time,kid from News where kid = 5 ORDER BY time DESC
UNION 
select top 8 id,title,time,kid from News where kid = 3 ORDER BY time DESC UNION 
select top 8 id,title,time,kid from News where kid = 7 ORDER BY time DESC UNION  select top 6 id,title,time,kid from News where kid = 6 ORDER BY time DESC UNION  select top 10 id,title,time,kid from News where kid = 2 ORDER BY time DESC
单个语句的话 按最新时间排序是没问题的  可是这6个合起来 就不对了 帮帮忙 谢谢了
解决方案1:

select * from ( select top 10 id,title,time,kid from News where kid = 1  UNION 
select top 6 id,title,time,kid from News where kid = 5  UNION  select top 8 id,title,time,kid from News where kid = 3  UNION 
select top 8 id,title,time,kid from News where kid = 7  UNION  select top 6 id,title,time,kid from News where kid = 6
UNION 
select top 10 id,title,time,kid from News where kid = 2 ) ORDER BY time DESC 你是相对整体排序吧

解决方案2:

 union排序的问题能实现吗?

解决方案3:

也可以外面使用时order by,.net的linq

解决方案4:

建个表变量啊,先都插进去,然后再select order by

解决方案5:

9楼的按说是没有问题的!

解决方案6:

引用 15 楼 Chinajiyong 的回复:
Quote: 引用 13 楼 Chinajiyong 的回复:
Quote: 引用 12 楼 u011095570 的回复:
试过了,9、10楼的方法不行。 查询结果、每个分类下、显示的不是按时间排序最新的几条。 搞不明白 ,每个分类下都 order by 了,为什么显示的不是每个分类下最新的几条。
union 会自动按升序排序
<> 用union all可以实现,但是会产生重复数据
UNION ALL 就可以了
重复数据是否会产生那是跟他select出来的结果有关 解决方案7:

改用UNION ALL

解决方案8:


你需要再对union之后的查询结果在排序。


select b.* from  ( select top 10 id,title,time,kid from News where kid = 1 ORDER BY time DESC
UNION  select top 6 id,title,time,kid from News where kid = 5 ORDER BY time DESC UNION  select top 8 id,title,time,kid from News where kid = 3 ORDER BY time DESC UNION 
select top 8 id,title,time,kid from News where kid = 7 ORDER BY time DESC
UNION 
select top 6 id,title,time,kid from News where kid = 6 ORDER BY time DESC UNION  select top 10 id,title,time,kid from News where kid = 2 ORDER BY time DESC ) b order by b.time desc
解决方案9:

在这个SQL语句的外面套一个select * from 你的union集合 order by time desc

解决方案10:

楼主是想要kid = 1 前10条(按时间降序)后门进跟着kid=5的前6条(按时间降序)……?这样显示吗?


以上介绍了“ union排序的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2019854.html

相关图片

相关文章