我有以下设置:
表格1:
latdouble
3
4
5
1
6
2
6
9
表2:
time latdouble(type double) latvarchar(type varchar)
2:00 3
3:00 4
4:00 5
5:00 1
6:00 6
7:00 2
8:00 6
9:00 9
基本上 Table1 中的 latdouble 顺序正确,我想将这些值原样复制到 Table2 中,结果应该是:
表2:
time latdouble(type double) latvarchar(type varchar)
2:00 3 3
3:00 4 4
4:00 5 5
5:00 1 1
6:00 6 6
7:00 2 2
8:00 6 6
9:00 9 9
据我所知,我需要使用类似于以下的命令:
update Table2 set latdouble = (select latdouble from Table1)
但是我收到以下错误:
ERROR: more than one row returned by a subquery used as an expression
我确定有一个简单的解决方法,但我无法弄清楚,
谢谢,詹姆斯
更新:让我解释一下这是怎么发生的。表 2 最初看起来像:
表2:
time latvarchar(type varchar)
2:00 3
3:00 4
4:00 5
5:00 1
6:00 6
7:00 2
8:00 6
9:00 9
我将 latdouble(type double) 列添加到 Table2。
然后我创建了一个名为 Table1 的新表,其中包含一个名为 latdouble(type double) 的列。我使用以下命令从 Table2 转换 latvarchar 并将其复制到 Table1 中:
insert into Table1 (latdouble) select cast(latvarchar as double precision) from Table2
现在我想将值从 Table1 latdouble 复制回 Table2 latdouble。我这样做的原因是将 latvarchar 中的值转换为 double 并将它们保存在 latdouble 中,而不必创建整个 Table2 的临时副本,因为它是一个带有几个索引的非常大的表。