免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3777 | 回复: 2
打印 上一主题 下一主题

请教一个sql语句返回结果的排序顺序不固定的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-16 15:32 |只看该作者 |倒序浏览
环境:
利用自己公司的中间件平台,在sqlserver2008数据库上,对某张业务表进行qe查询,后台翻页。
此qe最终可以体现为一句普通的sql语句,比如: select * from 业务表 order by rid 其中rid是此表的主键。(注意,此sql有且只有这一个rid排序字段)
中间件在处理时,会把结果扔到tempdb中某张ht_xxxxxxxx表,然后每次返回第x条到第y条

现象:
打开前台页面,点击“提交”后,查询结果的排序有时会错乱:照理应该按照rid排序,但是有时却没有按照rid排序,(可能几次中会发生一次,也可能几十次才发生一次)
也就是说,绝大多数时,正确的结果类似:
rid,其它字段1,其它字段2。。。。
1 ,。。。。
2 ,。。。。
3 ,。。。。
4 ,。。。。
5 ,。。。。
。。。
4999,。。。。
5000,。。。。

但是,发生错乱时,返回的结果却可能是:(不一定是从3442开始,似乎有点随机。)
rid,其它字段1,其它字段2。。。。
3442,。。。。
3443,。。。。
3444,。。。。
。。。。。
4999,。。。。
5000,。。。。
1 ,。。。。
2 ,。。。。
3 ,。。。。
。。。。
3440,。。。。
3441,。。。。
此时,看tempdb中的那张ht_xxxx表,其中的顺序也是错乱的。

如果把sql语句直接放到数据库客户端中执行,排序都正确。

想询问下,这样的情况是sybase的原因呢,还是主要问题是在我们自己使用的中间件上?

论坛徽章:
0
2 [报告]
发表于 2009-12-16 15:38 |只看该作者
sqlserver 不在本论坛支持之列

论坛徽章:
0
3 [报告]
发表于 2009-12-17 14:33 |只看该作者
晕,发错地方了,对不起版主~能移动下么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP