oracle 把一张表的符合条件的数据复制到另一张表中,其中新表中有个新字段 默认存入老数据中的对应字段
时间: 2024-09-25 20:05:24 浏览: 37
在Oracle中,将一张表的部分数据复制到另一张表,同时包含新的字段,可以使用INSERT INTO ... SELECT语句。假设你有两个表,源表为`old_table`,目标表为`new_table`,新表有一个名为`new_field`的新字段,你可以这样做:
```sql
INSERT INTO new_table (id, new_field, other_fields)
SELECT id, old_data_column AS new_field, * FROM old_table
WHERE condition; -- 这里填入筛选条件
-- 或者,如果你想复制所有记录,但新字段值为空(NULL)
INSERT INTO new_table (id, new_field, other_fields)
SELECT id, NULL, * FROM old_table;
-- 如果你想保留原字段值,而不是NULL,可以用COALESCE函数处理
INSERT INTO new_table (id, new_field, other_fields)
SELECT id, COALESCE(old_data_column, default_value) AS new_field, * FROM old_table;
```
这里,`old_data_column`是你想从`old_table`复制过来的字段,`condition`是你想要筛选的条件。`other_fields`代表除了`new_field`以外的其他已存在的字段。如果`new_field`在`new_table`中已经存在,则上述操作会自动为每个插入行设置默认值。
阅读全文