我有两个临时表。第一个是以下内容:
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;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。