关于查询结果怎么排序的问题,急需帮忙

qiashzhou 2008-04-25 02:08:46
遇上难题了,SQL Server2005,表A,里面有字段a,b,c,d,e...其中a是主键,而且建有聚集索引,b的值如下:
(空)
A
B
A
C
(空)
B
B
A

以前用以下查询语句查询
Select distinct(b) b
from A
结果都是
(空)
A
B
C

后来往这个表里添加了若干条数据以后,查询出来的结果变成了
B
(空)
A
C

把所有数据导入到ACCESS里面以后,查询出来的结果倒还是
(空)
A
B
C

网上查了一下好像跟索引有关?但是我索引是建在主键a上的,有没有人能解释一下这是怎么一回事?
...全文
67 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
等待牛人来答.
qiashzhou 2008-04-25
  • 打赏
  • 举报
回复
楼上的关注点都在于我的需求合理不合理了,明天结贴。
qiashzhou 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 flairsky 的回复:]
引用 6 楼 qiashzhou 的回复:
我不想改SQL语句,我想知道为什么有时候自动升序排列,有时候又不会?
怎么样能不改SQL语句而让它一定按升序自动排列


不会有人对数据库有这样的要求
[/Quote]

至少能不能说明一下数据库返回的查询结果时候按升序自动排列,有时候又不按升序自动排列的原因呢?
flairsky 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qiashzhou 的回复:]
我不想改SQL语句,我想知道为什么有时候自动升序排列,有时候又不会?
怎么样能不改SQL语句而让它一定按升序自动排列
[/Quote]

不会有人对数据库有这样的要求
qiashzhou 2008-04-25
  • 打赏
  • 举报
回复
呵呵,需求没有意义倒不一定,现在是因为一段别人写的程序,里面有好几个类似的地方,没有加order by,原来运行都没问题,现在出问题了,而且因为有很多复杂的sql语句,不是简单的加个order by能就解决的。

如果说确实“没有这样的可能”的话,那可能要重写sql语句了。
dawugui 2008-04-25
  • 打赏
  • 举报
回复
我不想改SQL语句,我想知道为什么有时候自动升序排列,有时候又不会?
怎么样能不改SQL语句而让它一定按升序自动排列
---------------
已经告诉过你了,没有这样的可能.

你的需求也没有实际意义.
qiashzhou 2008-04-25
  • 打赏
  • 举报
回复
我不想改SQL语句,我想知道为什么有时候自动升序排列,有时候又不会?
怎么样能不改SQL语句而让它一定按升序自动排列
kk19840210 2008-04-25
  • 打赏
  • 举报
回复
Select distinct(b) b
from A
order by b
dawugui 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qiashzhou 的回复:]
记录有上千条,b的值就是
(空)
A
B
C
四种。

当然我可以用 order by来实现我的要求,但是我想是不是有其他办法,数据库哪里设置一下就可以让查询结果自动按升序排列?
[/Quote]
对B建立索引.

一般来说,你这个要求没实际意义.

查询时加个order by 就行了.
dobear_0922 2008-04-25
  • 打赏
  • 举报
回复
Select distinct(b) b 
from A
order by b
qiashzhou 2008-04-25
  • 打赏
  • 举报
回复
记录有上千条,b的值就是
(空)
A
B
C
四种。

当然我可以用 order by来实现我的要求,但是我想是不是有其他办法,数据库哪里设置一下就可以让查询结果自动按升序排列?
dawugui 2008-04-25
  • 打赏
  • 举报
回复
order by b (desc)?

22,207

社区成员

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

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