如何重新编号表列

时间:2014-10-28 13:56:37

标签: sql sqlite

我有一个按列ID排序的SQLite表。但我需要通过另一个名为RunTime的数字字段对其进行排序。

CREATE TABLE Pass_2 AS
SELECT RunTime, PosLevel, PosX, PosY, Speed, ID
FROM Pass_1

表格Pass_2看起来很不错,但我需要在ID重新编号1 .. n列,而不需要使用记录。

2 个答案:

答案 0 :(得分:2)

SQL数据库的一个原则是基础表对其记录没有自然或保证订单。您必须使用SELECT子句指定ORDER BY从表中查看记录的顺序。

您可以使用SELECT * FROM your_table ORDER BY RunTime获取所需的记录,这是在任何SQL数据库中执行此操作的正确且可靠的方法。

如果您想尝试Pass_2获取“be”以运行时顺序,您可以将ORDER BY子句添加到SELECT你用来创建表但记住:你不能保证按照它们添加到表中的顺序取回记录

您何时可以以不同的顺序获取记录?当您的查询可以使用覆盖索引中的列来回答时,最有可能发生这种情况 - 在这种情况下,记录更有可能以索引顺序返回,而不是任何“自然”顺序(但同样,{{{ 1}}子句)。

答案 1 :(得分:0)

如果您想要从ID开始的新1列,请使用ROW_NUMBER()功能。在查询中使用此ID,而不是ROW_NUMBER() OVER(ORDER BY Runtime) AS ID....这将使用新计算的列替换旧的ID