一个怪问题 我的SQL数据库排序怎么会这样

gzhy2008 2010-09-23 08:04:55
1
2
3
4
5
6
7
10
8
9
如上所示,序号是自己生成的请问10问什么会排到7的后面, 数据库为sql server2005,请问什么情况下会出现这个问题?
...全文
68 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fpzgm 2010-09-28
order 一下不就好了
  • 打赏
  • 举报
回复
abuying 2010-09-27
可能是按照其它列作为物理索引 排序了。
你的序号虽然是自动生成,但如果没有明确的order by ,还是按照物理索引的。
  • 打赏
  • 举报
回复
luxi0194 2010-09-27
[Quote=引用 8 楼 lvxiao715 的回复:]

只有索引才会排序,否则无序,你可以将该字段设为主键,或只做索引
[/Quote]
Up。。。。
如果没有索引,是按物理顺序显示的,除非自己加orderby
  • 打赏
  • 举报
回复
lvxiao715 2010-09-25
只有索引才会排序,否则无序,你可以将该字段设为主键,或只做索引
  • 打赏
  • 举报
回复
envykok 2010-09-24
[Quote=引用楼主 gzhy2008 的回复:]
1
2
3
4
5
6
7
10
8
9
如上所示,序号是自己生成的请问10问什么会排到7的后面, 数据库为sql server2005,请问什么情况下会出现这个问题?
[/Quote]

数据库如果没有指定order by 或没有 clustered index,将按照存储顺序排
  • 打赏
  • 举报
回复
cheng_fengming 2010-09-24
看看是不是还有其他的排序规则,如是不是有索引之类的。
  • 打赏
  • 举报
回复
dawugui 2010-09-24
[Quote=引用楼主 gzhy2008 的回复:]
1
2
3
4
5
6
7
10
8
9
如上所示,序号是自己生成的请问10问什么会排到7的后面, 数据库为sql server2005,请问什么情况下会出现这个问题?
[/Quote]
select * from tb order by id
select * from tb order by cast(id as int)
  • 打赏
  • 举报
回复
Rotel-刘志东 2010-09-24
--查询语句如下
select * from tb order by id
select * from tb order by cast(id as int)
  • 打赏
  • 举报
回复
zsh0809 2010-09-23
select id ,name,sex
from tb
order by id
  • 打赏
  • 举报
回复
SQLCenter 2010-09-23
要正确排序要order by,否则可以认为数据是无序的。
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-09-23 08:04
社区公告
暂无公告