读书人

union排序的有关问题

发布时间: 2013-06-19 10:26:41 作者: rapoo

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

如下:

能实现吗?
[解决办法]
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
你是相对整体排序吧
[解决办法]

你需要再对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



[解决办法]
改用UNION ALL
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

试过了,9、10楼的方法不行。

查询结果、每个分类下、显示的不是按时间排序最新的几条。

搞不明白 ,每个分类下都 order by 了,为什么显示的不是每个分类下最新的几条。

union 会自动按升序排序

用union all可以实现,但是会产生重复数据


UNION ALL 就可以了

重复数据是否会产生那是跟他select出来的结果有关
[解决办法]
9楼的按说是没有问题的!

读书人网 >asp.net

热点推荐