开发者社区> 问答> 正文

如何从另一个临时表中的另一个值替换一个临时表中的值?

我有两个临时表。第一个是以下内容:

Column1 |Column2         |Column3       |Column4     |Column5     |Column6
--------|----------------|--------------|------------|------------|-------
 10      |11               |1111          |001         |345.000000  |22
 13      |12               |1111          |001         |700.000000  |22
 10      |14               |1112          |001         |345.000000  |22
 16      |15               |5454          |001         |1200.000000 |22
 16      |17               |2364          |001         |1350.000000 |22

第二个包含将替换前两列中的数字的数字:

Column1 |Column2         |
--------|----------------|
 10      |1               |
 11      |2               |
 12      |5               |
 13      |3               |
 14      |0               |
 15      |7               |
 16      |2               |
 17      |5               |

我必须更改第一个表(表的前两列),以便将它们替换为相应的新值

结果如下:

Column1 |Column2         |Column3       |Column4     |Column5     |Column6
--------|----------------|--------------|------------|------------|-------
 1      |2               |1111          |001         |345.000000  |22
 3      |5               |1111          |001         |700.000000  |22
 1      |0               |1112          |001         |345.000000  |22
 2      |7               |5454          |001         |1200.000000 |22
 2      |5               |2364          |001         |1350.000000 |22

而且我完全被困住了

展开
收起
祖安文状元 2020-01-05 14:43:42 434 0
1 条回答
写回答
取消 提交回答
  • 我会在连接中使用可更新的CTE:

    WITH cte AS (
        SELECT t1.Column1 AS col1_target, t2_a.Column2 AS col1_src,
               t1.Column2 AS col2_target, t2_b.Column1 AS col2_src
        FROM #temp1 t1
        INNER JOIN #temp2 t2_a ON t1.Column1 = t2_a.Column1
        INNER JOIN #temp2 t2_b ON t1.Column2 = t2_b.Column2
    )
    
    UPDATE cte
    SET
        col1_target = col1_src,
        col2_target = col2_src;
    
    2020-01-05 14:43:50
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载