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

gzhy2008 2010-09-23 08:04:55
1
2
3
4
5
6
7
10
8
9
如上所示,序号是自己生成的请问10问什么会排到7的后面, 数据库为sql server2005,请问什么情况下会出现这个问题?
...全文
91 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)
「已注销」 2010-09-23
  • 打赏
  • 举报
回复
select id ,name,sex
from tb
order by id
SQLCenter 2010-09-23
  • 打赏
  • 举报
回复
要正确排序要order by,否则可以认为数据是无序的。

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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