【发布时间】:2018-11-16 16:53:20
【问题描述】:
我正在尝试用之前的值填充所有空值,但前提是字段帐户相同。我了解到我的表需要有一个主键。目前我的桌子上没有它,是否可以使用表格的行数创建一个,请参见下表:
CREATE TABLE test (ACCOUNT_NO INT, RATE INT, DATE_L DATE, ROWCOUNT INT);
INSERT INTO test VALUES (1, 3, '2017-12-31',1);
INSERT INTO test VALUES (1, NULL, '2018-01-31',2);
INSERT INTO test VALUES (3, 5, '2017-12-31',3);
INSERT INTO test VALUES (3, NULL, '2018-01-31',4);
INSERT INTO test VALUES (3, NULL, '2018-02-28',5);
INSERT INTO test VALUES (6, 2, '2018-03-04',6);
INSERT INTO test VALUES (6, NULL, '2018-03-04',7);
INSERT INTO test VALUES (6, 5, '2018-03-04',8);
INSERT INTO test VALUES (6, NULL, '2018-03-04',9);
INSERT INTO test VALUES (6, NULL, '2018-03-04',10);
所以表格看起来像这样:
|ACCOUNT_NO|RATE|DATE_L |RowCount|
|1 |3 |2017-12-31|1 |
|1 |NULL|2018-01-31|2 |
|3 |5 |2017-12-31|3 |
|3 |NULL|2018-01-31|4 |
|3 |NULL|2018-02-28|5 |
|6 |2 |2018-03-04|6 |
|6 |NULL|2018-03-04|7 |
|6 |5 |2018-03-04|8 |
|6 |NULL|2018-03-04|9 |
|6 |NULL|2018-03-04|10 |
我希望它看起来像这样:
|ACCOUNT_NO|RATE|DATE_L |RowCount|
|1 |3 |2017-12-31|1 |
|1 |3 |2018-01-31|2 |
|3 |5 |2017-12-31|3 |
|3 |5 |2018-01-31|4 |
|3 |5 |2018-02-28|5 |
|6 |2 |2018-03-04|6 |
|6 |2 |2018-03-04|7 |
|6 |5 |2018-03-04|8 |
|6 |5 |2018-03-04|9 |
|6 |5 |2018-03-04|10 |
欢迎任何帮助,并在此先感谢您。
【问题讨论】:
-
您是在尝试选择还是更新?
-
SQL 表代表 无序 集。除非数据中的一列指定了排序,否则没有先前的值。
-
表中有主键吗?或日期时间列?没有它,我们真的无法定义什么是前一个,什么是下一个。数据以无序的方式存储。
-
请回答上述 cmets 中提出的问题。你的问题是不完整的。
-
你没有PK。没有一个,这个问题基本上是无法解决的。