【问题标题】:Is there is a way I can save my table in ascending order by id [duplicate]有没有一种方法可以按 id 升序保存我的表格 [重复]
【发布时间】:2020-02-10 12:25:05
【问题描述】:

有没有办法。我可以按 id 升序保存我的表格。

我想从我正在使用的现有表中创建新表。 SELECT id,name 从 oldtable order by id asc 到 newtable。所以它创建了表,但新表不按 id 升序存储。我想将 id 按升序存储在新表中。

SELECT AirlineData2019.[id]
      ,AirlineData2019.[DestAirportID]
      ,AirlineData2019.[DestAirportSeqID]
      ,AirlineData2019.[DestCityMarketID]
      ,AirlineData2019.[Dest]
      ,AirlineData2019.[DestCityName]
      ,AirlineData2019.[DestState]
      ,AirlineData2019.[DestStateFips]
      ,AirlineData2019.[DestStateName]
      ,AirlineData2019.[DestWac] 
 INTO Destination FROM AirlineData2019 ORDER BY id;
```[![I want to save my data in that way in new table][1]][1]


  [1]: https://i.stack.imgur.com/c0h0t.png

【问题讨论】:

  • 在关系数据库中,行是无序的。在您使用 order by 子句之前,没有固有的顺序。
  • 用您正在使用的数据库标记您的问题。

标签: sql


【解决方案1】:

SQL 表代表无序 集合。因此,将它们按“顺序”存储并没有真正意义。实际上,大多数数据库都支持聚集索引,它们确实有顺序。

但即使使用聚集索引,这也不能满足您的要求——因为不能保证对表的查询以特定顺序返回结果除非您使用order by

我建议您将id 列定义为主键——或者至少在其上创建一个索引。那么当你使用order by id时,查询会使用索引。

【讨论】:

    【解决方案2】:

    简短的回答 - 不。

    SQL 表本质上是无序的。如果您想以特定顺序检索行,则只需在查询时使用order by 子句(就像您的原始查询一样)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 2013-06-15
      • 2019-08-29
      • 1970-01-01
      相关资源
      最近更新 更多