关于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的。 展开
先将table1按field1排序,然后再以此结果为表源进行无排序的查询,则结果是否可保证会按field1的排序结果输出?
不好意思,忘了提醒,在有些系统时,子查询后要加个别名才不会出错:
select * from (select * from table1 order by field1) newTable
子查询里是可以加order的。 展开
展开全部
第一,语句错误;除非另外还指定了 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
第二,回答你的问题,结果不会按照子查询中的排序结果输出,语句如下:
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的数据!~
展开全部
可以 在里和在外一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能在子查询中使用order by
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样写好像会报错吧 .子查询中不允许使用 order by 除非有Top的时候才能用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询