sql - 如何用另一个临时表中的另一个值替换一个临时表中的值?
问题描述
我有两个临时表。第一个如下:
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
我完全被卡住了
解决方案
我会使用带有连接的可更新 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;
推荐阅读
- unix - 按特定顺序计算单词的次数(Unix)
- c# - JsonDeserialize 在尝试绑定到模型后返回空值
- scala - 如果我被要求提供凭据,我该如何发布 scala 应用程序?
- python-3.x - 我得到 average_precision_score(y_test,y_predict) =1 。它背后的直觉是什么?
- c++ - 光线追踪器中的 uv 错误
- javascript - 无法访问对象键值对
- jquery - 配置数据表列表搜索
- c# - Unity WebcamTexture 高级设置(曝光、对焦、缩放)
- asp.net - 尝试使用 System.Net.WebClient 下载 SSRS 报告时出现 403 错误
- python - 用不同长度的行重塑数据框