SQL先查找再排序的问题

[复制链接]
查看11 | 回复3 | 2011-8-16 08:42:49 | 显示全部楼层 |阅读模式
是这样的,我要从一个表中选择前2个记录,然后再对这2个记录按照id升序排序
我写的SQL如下:
select top 2 * from shang1 order by id asc
本来表shang1的内容如下:
id        category        price        number
1        fruit                10.0        20
3        fruit                 23.0        12
5        fruit                 67.0        32
2        book                50.0        89       
4        book                34.0        1
但经过select top 2 * from shang1 order by id asc后得到的表如下所示:
id        category        price        number
1        fruit                10.0        20
2        book                50.0        89
我期望的结果是:
id        category        price        number
1        fruit                10.0        20
3        fruit                 23.0        12
先选择1和3前2个,然后再按照id排序啊
不知道要得到我的期望结果怎么弄?另外,这句话到底是怎样执行的呢

回复

使用道具 举报

千问 | 2011-8-16 08:42:49 | 显示全部楼层
select top 2 * from shang1 order by id asc意思是先排序,然后列出前2条记录要实现楼主想要的功能,只能先列出2条记录,再排序1.select top 2 * from shang1 列出前2条2.select * from (select top 2 * from shang1) order by id asc 将这2条记录排序因此答案就是select * from (select top 2 * from shang1) order by id asc...
回复

使用道具 举报

千问 | 2011-8-16 08:42:49 | 显示全部楼层
这个语句是对的:select * from (select top 2 * from shang1) a order by id asc...
回复

使用道具 举报

千问 | 2011-8-16 08:42:49 | 显示全部楼层
select * from (select top 2 * from shang1) a order by id asc...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行