我想将一个列数据复制到另一个列中 替换旧数据。例如:
表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
答案 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;