2016-12-02 92 views
-1

enter image description here我需要在表格的顶部插入一行。有没有办法做到这一点?插入表中sql的行数顶部

我知道“Order By”,这是行不通的。我需要改变实际的表格(请不要建议Order By。我在这里找到的大多数线程只是表明了这一点)。

该列包含日期。当输入数据时,该表已按desc排序。每天,我需要添加一个具有当前日期的行,并根据该行填充其余数据。该行必须位于顶部。

我有一个ID列。这不是主要关键。它变为1,2,3 ... 添加的新日期理想情况下应插入第1行,I​​D为1(尽管这并不是绝对重要的)。我没关系,身份证到处都是,但日期必须全部下降。

编辑:我在插入之前和之后添加了表格的屏幕截图。该表有大约300行数据。正如你所看到的,在插入之后,当前日期将会到达底部。我想改变这一点。

请帮忙。由于

+0

在操作之前和之后添加几行样本表数据。 (以及格式化文本。) – jarlh

+0

刚刚在操作之前和之后添加了表格数据的屏幕截图。您是否需要实际表格格式的数据? –

+2

数据无序存储。没有任何第一行或最后一行。要按特定顺序读取行,请使用ORDER BY。身份证只是身份证,并不代表什么意思。但是改变行之间的ID会弄乱外键和东西 - 所以不要这样做。 – jarlh

回答

0

如果你读了以下回答一个问题之前问,它会详细解释您必须由于行的顺序使用顺序返回从来没有被保证:

Default row order in SELECT query

因此只将数据插入表中,SQL在后台执行的操作与您无关,与您请求检索的顺序相关的是什么。因此Order By是按照您想要的顺序获取数据的方式。

我竭力要明白你的意思是:

该表已被责令说明当数据被输入。

这应该是一个两个阶段的过程:

1)插入数据

INSERT INTO [TABLENAME] VALUES ([ID], [risk_date_day], [Risk1], [Risk2], [Risk3], [Risk4], [Risk5], [Grand Total], [1Per], [2Per], [3Per], [4Per], [5Per]); 
--Naturally replace the values between square brackets with the correct values for data entry. 

2)检索数据

SELECT [ID], [risk_date_day], [Risk1], [Risk2], [Risk3], [Risk4], [Risk5], [Grand Total], [1Per], [2Per], [3Per], [4Per], [5Per] 
FROM [TABLENAME] 
ORDER BY [risk_date_day] DESC; 

这将在最新的日期返回数据顶端。

但是,如果您确实表示您可以在任何特定日期输入的日期可能不一定是最新的日期,那么这将不起作用。在这种情况下,我会建议添加一个名为DateOfEntry的字段并使用该字段执行Order By。

+0

如果问题是重复的,请将它标记为这样。 – Takarii

+0

嗨Landy81,当我说“该表已经按照desc当数据输入时排序”...我从另一个表创建此表(A)。当我查询另一个表中的数据时,我按顺序(按日期降序)插入到我的第一个表A中。现在,当我将行添加到它时,它会走到底部。这正是我试图阻止的事情 –

+0

@FariyaFarhad它会做,这应该与你无关。它如何存储是SQL的关注点,你应该只关心如何通过select语句将数据从数据库中取出。 – Landy81