我有这个表
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
例如:当我运行时,从table_name中选择*。结果应如下所示,无需排序
不,这是不可能的。SQL 表表示无序行集。如果查询中没有显式order by
子句,数据库可以自由地按其喜欢的任何顺序返回行,并且不保证排序在随后执行同一查询时保持一致。
因此,如果您希望顺序一致,请在查询中使用order by
子句。
您可以在表上创建一个聚集索引(如果还没有(。然后您的表格将按该顺序排序...但它不保证选择查询将按该顺序返回数据。只有通过按子句指定顺序才能做到这一点。
为什么不能使用订单?