postgres使用select case插入表中

时间:2016-05-11 11:55:00

标签: postgresql

我正在尝试将一组记录插入表中,这些记录将根据以下两种情况提取:

INSERT INTO table1 (pkid, time_created)
SELECT pkid, time_created,
CASE WHEN tgt_time >= src_time THEN tgt_time as time
    WHEN src_time >= tgt_time THEN src_time as time
END
FROM temptable
WHERE time >= '0001-01-01' and time <= '2016-03-01';

我正在尝试关于何时使用2列中的任何一列来过滤日期以提取记录。这是可能的postgres或可能调整声明使其工作?

2 个答案:

答案 0 :(得分:2)

列数错误:insert - 2,select - 3. inser into table1 (pkid, time_created, time)可能错过的时间

答案 1 :(得分:1)

INSERT INTO table1 (pkid, src_time_created)
SELECT pkid, src_time_created FROM temptable
WHERE 
CASE WHEN tgt_time >= src_time THEN tgt_time >= '0001-01-01' and tgt_time < '2016-03-01'
ELSE src_time >= '0001-01-01' and src_time < '2016-03-01'
END

这对查询进行了一些调整。