子查询无法使用order by怎么办

procedure123 2010-09-26 04:12:40
我的想法是先用一个select加order by语句查询出数据(这个是用一个软件通过使用者逐步配置需要的参数生成的,带ORDER BY),当然这个数据量有可能很庞大,
然后在这个结果的基础上用row_number()函数生成分页查询语句,但是这个时候把前面第一个select语句当作子查询来做就不行,提示在子查询中无法使用order by,那该怎么解决呢???
...全文
635 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiayunop 2010-11-08
  • 打赏
  • 举报
回复
用表的连接就可以实现了 inner jion .... order by
antiking 2010-09-26
  • 打赏
  • 举报
回复
用存储过程吧,把子查询排序的结果插入临时表在做。
xiaoxiao8372 2010-09-26
  • 打赏
  • 举报
回复
order by 所产生的是游标,而不是一个集合,但当你加上top的时候就又变成了一个集合。非常奇怪吧
procedure123 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 rwm5366745 的回复:]
row_number() over(order by 字段 ) 这里排序不行吗
[/Quote]
不过你的建议很好,我考虑采用你的方法
procedure123 2010-09-26
  • 打赏
  • 举报
回复
就是用软件协助生成了这么一个查询语句,
procedure123 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 rwm5366745 的回复:]
row_number() over(order by 字段 ) 这里排序不行吗
[/Quote]
最初的结果是通过一个select+order by 的语句获得的,是通过一个专用的配置软件获取的
rwm5366745 2010-09-26
  • 打赏
  • 举报
回复
row_number() over(order by 字段 ) 这里排序不行吗
procedure123 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bancxc 的回复:]
引用 7 楼 procedure123 的回复:
能否把这个order by的子查询先插入的一张表中,然后对这张表进行分页查询应该可以吧?
order by 插入表中也不能保证是有序的
[/Quote]
这个当真,用select into不行吗(带order by)
bancxc 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 procedure123 的回复:]
能否把这个order by的子查询先插入的一张表中,然后对这张表进行分页查询应该可以吧?
[/Quote]order by 插入表中也不能保证是有序的
procedure123 2010-09-26
  • 打赏
  • 举报
回复
能否把这个order by的子查询先插入的一张表中,然后对这张表进行分页查询应该可以吧?
procedure123 2010-09-26
  • 打赏
  • 举报
回复
这里的问题是先排序在分页,但是如果把order by 放在最外层的select中,就变成了先分页,然后用between找出需要的那些数据,然后再在这些数据的基础上排序,这样跟我的初衷是不一样了
think_huang 2010-09-26
  • 打赏
  • 举报
回复
这个貌似是有聚合函数的原因吧~用个as xx下让后order by
procedure123 2010-09-26
  • 打赏
  • 举报
回复
我的想法是先排序,然后用row_number over(order by(select 0))生成分页的字段进行分页
wyq29 2010-09-26
  • 打赏
  • 举报
回复
你说的太笼统

说你的表结构 和 要的结果, 还有你写的“不行”的sql语句
  • 打赏
  • 举报
回复
这个没法解决. SQL 不支持。 分开写被
bancxc 2010-09-26
  • 打赏
  • 举报
回复
子查询用order by没意义,除非有top

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧