【发布时间】:2017-08-29 00:13:46
【问题描述】:
我有一个 PostgreSQL 表:
table_a
id, start_date, tracking_date, type, relationship_id
基本上,我正在尝试删除 tracking_date 列并保留数据,为每个具有非空跟踪日期的记录创建一个新记录。新记录应该是原始记录的副本,除了 start_date 应该是原始行的 tracking_date 的值,新的 tracking_date 应该是 NULL 并且最后类型应该是所有以这种方式修改的记录的字符串值“type_b” .
到目前为止我的查询是:
INSERT INTO table_a
(id, start_date, tracking_date, type, relationship_id)
SELECT (id, start_date, NULL, "type_b", relationship_id)
FROM table_a
WHERE tracking_date IS NOT NULL;
我不认为从 table_a 中选择 NULL 和/或字符串值“type_b”是有效的。我想知道如何使用 INSERT INTO SELECT FROM 查询结构从另一个表中插入值,以及在同一个查询中插入 NULL 和字符串值。 (或在多个查询中)
之前
table_a
id, start_date, tracking_date, type, relationship_id
1, 1/1/1999, NULL, type_a, 100
1, 1/2/1999, 1/3/1999, type_a, 100
之后
table_a
id, start_date, tracking_date, type, relationship_id
1, 1/1/1999, NULL, type_a, 100
1, 1/2/1999, 1/3/1999, type_a, 100
1, 1/3/1999, NULL, type_b, 100
(想法是之后,我会删除 tracking_date 列))
【问题讨论】:
标签: sql postgresql