SQL Server条件联接

入侵者

我有三张桌子Table1 Table2 Table3我必须对它们执行一些操作并将结果存储在Table4

表格1:

ID       t1col2     t1col3  
``````   ``````     ``````
123      Fname1     Lname1
456      Fname2     Lname2  
789      Fname3     LnameAA  

表2:

ID        t2col2     t2col3     t2col4
`````     ``````     ``````     ``````
122       Fname1     Lname1     String1
466       Fname2     Lname2     String2
789       Fname3     Lname3     String3  

表3:

ID       t3col2       
``````   ``````      
122      querty     
789      asdfgh 

如何执行条件联接以检查以下条件:

  • 在中搜索子字符串AA t1col3
  • 如果找到,取代t1col3从值表1t2col3从价值表2,只有当表1 ID表2 ID是相等的。
  • 根据以上结果,ID表3中搜索匹配项
  • 如果找到,则按如下所述表4中显示内容

预期产量:

表4:

ID         t1col2     t2col3     t2col4     t3col2  
```````    ```````    ```````    ```````    ```````  
789        Fname3     Lname3     String3    asdfgh
暴风雨

首先将它们插入表4中。

然后根据Table4校正Table1。

DELETE FROM Table4;

INSERT INTO Table4 (ID, t1col2, t2col3, t2col4, t3col2)
SELECT t2.ID, t1.t1col2, t2.t2col3, t2.t2col4, t3.t3col2
FROM Table2 t2
JOIN Table1 t1 ON t1.ID = t2.ID AND t1.t1col3 LIKE '%AA%'
JOIN Table3 t3 ON t3.ID = t1.ID;

UPDATE t1
SET t1col3 = t4.t2col3
FROM Table1 t1
JOIN Table4 t4 ON t4.ID = t1.ID
WHERE t1.t1col3 != t4.t2col3;

SELECT * 
FROM Table4 
ORDER BY ID;

这里测试db <> fiddle

结果:

ID      t1col2      t2col3      t2col4      t3col2
----    --------    --------    --------    --------
789     Fname3      Lname3      String3     asdfgh

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章