我在postgresql上有以下代码:
WITH CTE1 AS
(
SELECT
value_1
,position
,value_3
,value_4
,value_5
From tabl_1
WHERE position = 1
)
WITH CTE2 AS
(
SELECT
value_1
,position
,value_3
,value_4
,value_5
From tabl_1
WHERE position = 2
)
INSERT INTO tbl_2
SELECT
CTE1.value_2 = IP_1
CTE2.value_2 = IP_2
FROM table_3 er
LEFT JOIN CTE1 ON CTE1.value_1 = er.value_1 AND CTE1.value_3 = er.value_3
LEFT JOIN CTE2 ON CTE2.value_1 = er.value_1 AND CTE2.value_3 = er.value_3我在单独的CTE中计算了IP_1,IP-2的值,但我不知道如何在一个CTE上替换2个CTE?或者其他方式。
发布于 2018-02-20 21:37:24
复制您的代码,这似乎有许多错误:
inserted;
可以对其进行重构以移除所有CTE:
INSERT INTO
tbl_2
SELECT
t1.value_2 = IP_1
t2.value_2 = IP_2
FROM
table_3 er
LEFT JOIN tabl_1 t1 ON t1.value_1 = er.value_1 AND t1.value_3 = er.value_3 AND t1.position = 1
LEFT JOIN tabl_1 t2 ON t2.value_1 = er.value_1 AND t2.value_3 = er.value_3 AND t2.position = 2https://stackoverflow.com/questions/48886286
复制相似问题