我有2张表,表1是一个主表,其中有代码和各自的植物。表 2 有一些数据,其中我在主表(表 1)中具有相同的代码,并且我必须更新表 2 中的植物列,就像表 1 中的植物一样作为参考代码。我尝试了下面的更新语句,但它不起作用。请帮我更新。
UPDATE TABLE_B B
SET B.PLANT = CASE
WHEN (B.CODE IN (SELECT CODE FROM TABLE_A A))
THEN A.PLANT
ELSE NULL
END;
表1
| code | plant |
|:---- |:-----:|
| A001 | 30009 |
| B001 | 30018 |
| C001 | 30006 |
表2
| DATE | CODE | PLANT |
|:------------|:----:|:-----:|
| 2024-09-03 | A001 | |
| 2024-09-03 | B001 | |
| 2024-09-03 | C001 | |
| 2024-09-04 | A001 | |
| 2024-09-04 | C001 | |
| 2024-09-05 | A001 | |
| 2024-09-06 | B001 | |
| 2024-09-06 | A001 | |
| 2024-09-06 | C001 | |
您可以使用 MERGE INTO ...
MERGE INTO TABLE_2 t2
USING ( Select t1.code, t1.plant
From TABLE_1 t1
) x ON(x.code = t2.code)
When Matched Then
Update SET t2.plant = x.plant