order by语句中的排序是否可以显式保存在表中(sql server 2017版)

sq1bmfud  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(312)

我有这张table

AGENT_CODE AGENT_NAME      WORKING_AREA                        
---------- ------------- ---------------
A001       Subbarao        Bangalore                           
A002       Mukesh          Mumbai                              
A003       Alex            London

对上表进行排序会得到下面的结果。

select * 
from table_name 
order by agent_name;

AGENT_CODE AGENT_NAME      WORKING_AREA                        
---------- ------------- ---------------
A003       Alex             London                           
A002       Mukesh           Mumbai                              
A001       Subbarao         Bangalore

现在,我想保留我的表,并将已定位行的排序顺序永久保存到同一个表中
当我跑步的时候

select * from table_name

结果应显示如下,无需排序

AGENT_CODE AGENT_NAME      WORKING_AREA                        
---------- ------------- ---------------
A003       Alex             London                           
A002       Mukesh           Mumbai                              
A001       Subbarao         Bangalore
qco9c6ql

qco9c6ql1#

例如:当我运行select*from table\ u name时。结果应显示如下,无需排序
不,这是不可能的。sql表表示无序的行集合。在没有明确的 order by 在查询中,数据库可以自由地按它喜欢的任何顺序返回行,并且不能保证排序在同一查询的后续执行上是一致的。
所以如果你想要一个一致的排序,一定要使用 order by 你的问题。

50pmv0ei

50pmv0ei2#

您可以在表上创建聚集索引(如果还没有)。然后您的表将按该顺序排序…但不能保证select查询将按该顺序返回数据。只有通过指定ORDERBY子句才能这样做。
为什么不能使用订单?

相关问题