oracle 将一列复制到同一个表中的另一列,我需要指定哪些数据放在哪里吗?

x0fgdtte  于 2023-11-17  发布在  Oracle
关注(0)|答案(3)|浏览(248)

我想更改Oracle表中一列的数据类型(varchar 2到number),但该列不为空。因此,我想我会做的是,创建一个新列,将数据从一列复制到另一列。禁用/删除前一列,并重命名新列。
要在相同列之间复制数据,我可以使用:用途:

UPDATE TABLE_NAME SET NEW_COLUMN = TO_NUMBER(OLD_COLUMN);

字符串
但在此之前,我想确认的是,我是否需要指定哪一行的数据放在哪里?或者它将被复制到列中的相邻行?我的意思是,我是否需要做一些类似的事情:

UPDATE (SELECT TO_NUMBER(OLD_COLUMN) AS OLDISH, NEW_COLUMN AS NEWISH FROM TABLE_NAME A, TABLE_NAME B WHERE A.ID = B.ID) SET NEWISH = OLDISH;

anhgbhbe

anhgbhbe1#

对于每一行,该操作将在同一行上完成。
请注意,如果不想更新所有表行,则需要添加WHERE子句。

s6fujrry

s6fujrry2#

UPDATE foo_table SET some_column = another_column使用同一行的some_columnanother_column。但请注意,它对foo_table的每一行都这样做;请确保它是您想要的。

0sgqnhkj

0sgqnhkj3#

如果你不想要任何提示,
您将要对“temp1”执行不带WHERE子句的UPDATE语句。可能会丢失数据。是否确定?
使用一个伪where子句,如:UPDATE temp1 SET temp_place = place WHERE 1 =1

相关问题