sql通过临时表完成插入操作

WITH query_results AS (
	SELECT
		columns
	FROM
		schema.table tim,
		LATERAL (
		VALUES
			( 't01', tim.t01 ),
			( 't02', tim.t02 ),
			( 't03', tim.t03 ),
			( 't04', tim.t04 ),
			( 't05', tim.t05 ),
			( 't06', tim.t06 ),
			( 't07', tim.t07 ),
			( 't08', tim.t08 ),
			( 't09', tim.t09 ),
			( 't10', tim.t10 ),
			( 't11', tim.t11 ),
			( 't12', tim.t12 ),
			( 't13', tim.t13 ),
			( 't14', tim.t14 ),
			( 't15', tim.t15 ),
			( 't16', tim.t16 ),
			( 't17', tim.t17 ),
			( 't18', tim.t18 ),
			( 't19', tim.t19 ),
			( 't20', tim.t20 ) 
		) AS t ( toolpos, toolid )
		INNER JOIN schema.table1 tbi ON t.column= tbi.column
	WHERE
		tim.column='' 
	),
	insert1 AS (
		INSERT INTO schema.table ( columns ) SELECT
		'columns'
	FROM
		query_results 
	WHERE
		query_results.column=''  ON CONFLICT ( columns ) DO
	UPDATE 
		SET t02 = '',
		column='' RETURNING * 
	),
	insert2 AS (
		INSERT INTO schema.table ( columns) SELECT coalesce
		( '', '123' ),
		columns
	FROM
		query_results 
	WHERE
		query_results.column= '' ON CONFLICT ( columns ) DO
	UPDATE 
		SET columns='' RETURNING * 
	) SELECT
	* 
FROM
	insert1,
	insert2;

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值