如何将返回单行两列的SQL查询结果插入新表且不重复执行?
解决方案
你可以直接将原查询作为INSERT语句的数据源,通过INSERT...SELECT语法一次性完成插入,不需要执行两次查询,完整语句如下:
INSERT INTO table2 (col1, col2) SELECT SUM(firstmeasure) AS col1, COUNT(*) AS col2 FROM (SELECT date1, date2, CASE WHEN DATEDIFF(date1, date2) < 20 THEN 1 ELSE 0 END firstmeasure FROM table1) x WHERE date1 >= '01/01/2024';
原理很简单:你的原查询本身会返回单行两列的结果,这恰好和table2中要插入的col1、col2列的数量、顺序对应,INSERT...SELECT会直接把查询结果的整行数据插入到目标表中,无需拆分或借助变量。
内容的提问来源于stack exchange,提问作者user1765369
相关产品推荐
相关产品推荐

