如何将一个列数据复制到oracle中的另一列

时间:2015-03-21 05:36:32

标签: oracle

我想将一个列数据复制到另一个列中    替换旧数据。例如:

表1

Column1    Column2 

SONY       Sony  Desc
Lenovo     Lenovo Desc 
Nokia      Nokia Desc 

我想结果像

Column 1        column2
SONY            Sony  Desc
Sony  Desc
Lenovo          Lenovo Desc 
Lenovo Desc      
Nokia            Nokia Desc 
Nokia Desc

我试过我的查询不匹配

Update table1 set column1 = column2

2 个答案:

答案 0 :(得分:2)

如果您想添加行,则需要INSERT而不是UPDATE。此语句将添加从表中另一行的column1复制column2值的新行以及从序列中获取的主键(export_config_id)值seq_export_config_id ):

INSERT INTO table1
(export_config_id, column1)
SELECT seq_export_config_id.NEXTVAL, column2 FROM table1;

答案 1 :(得分:1)

如果column1具有 NOT NULL约束,或者如果它具有主键约束,那么您将无法插入NULL值。您需要过滤掉NULL值:

INSERT INTO table1 (column1)
  SELECT column2 
   FROM table1 
  WHERE column2 IS NOT NULL;