关于SQL查询结果排序问题

如:select*from(select*fromtable1orderbyfield1)先将table1按field1排序,然后再以此结果为表源进行无排序的查询,则结果... 如:select * from (select * from table1 order by field1)
先将table1按field1排序,然后再以此结果为表源进行无排序的查询,则结果是否可保证会按field1的排序结果输出?
不好意思,忘了提醒,在有些系统时,子查询后要加个别名才不会出错:
select * from (select * from table1 order by field1) newTable
子查询里是可以加order的。
展开
 我来答
caohangking
2011-12-28 · TA获得超过269个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:139万
展开全部
第一,语句错误;除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
第二,回答你的问题,结果不会按照子查询中的排序结果输出,语句如下:
select * from (select TOP 100 PERCENT * from table1 AS A order by A.field1 DESC) newTable
最后得出的结果等价于
select * from table1 AS A
追问
你的第一句应该只有100条记录,怎么会等价于第二句?
追答
TOP 100 PERCENT这个的意思是取表中数据的百分比;如果表中有100W数据,TOP 100 PERCENT就是取出表中的100%的数据,如果是TOP 20 PERCENT的话,那就值取出20W的数据!~
百度网友86a6eea
2011-12-28
知道答主
回答量:39
采纳率:0%
帮助的人:14万
展开全部
不能,这是一个错误的命令
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
康熙转世
2011-12-28 · TA获得超过6839个赞
知道大有可为答主
回答量:4325
采纳率:85%
帮助的人:2892万
展开全部
可以 在里和在外一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
栀株暇
2011-12-28 · 超过13用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:31.3万
展开全部
不能在子查询中使用order by
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wyq9089
2011-12-28 · 超过30用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:72.3万
展开全部
这样写好像会报错吧 .子查询中不允许使用 order by 除非有Top的时候才能用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式