将数据从另一列插入到空(null)列,其中条件

问题描述 投票:0回答:1

我需要更新 SQL 表 [LDH_Provider_Crosswalk] 中的“ProvTypeDesc”列。我已经创建了该列并将所有值暂时设置为 null。

这需要从表 [LevelofCareCrosswalk] 上的 ProvType_Desc 列进行填充。思考过程是使用 [LevelofCareCrosswalk] t2 中的 ProvType_Desc 更新 [LDH_Provider_Crosswalk] t1 中的 ProvTypeDesc,其中 t1.provtype = t2.provtype。 (两个表都有 provtype 列,其中包含与 prov 类型描述相关的适当值。

我不确定在这种情况下是否应该使用“插入”或“更新”语句。也许我应该使用另一个声明?无论如何,这是我的代码的样子,但它不起作用。它只是将 t2 中的数据附加到 t1 的底部。

我尝试插入语句:

INSERT INTO [LDH_Provider_Crosswalk] ([ProvTypeDesc])
SELECT t1.ProvType_Desc 
FROM [LevelofCareCrosswalk] t1
JOIN [LevelofCareCrosswalk] t2
ON t1.ProvType = t2.ProvType

我尝试更新声明:

UPDATE [LDH_Provider_Crosswalk]
SET t1.[ProvTypeDesc] = t2.ProvType_Desc
FROM [LDH_Provider_Crosswalk] t1 
JOIN [LevelofCareCrosswalk] t2
ON t1.ProvType = t2.ProvType

表格中的示例数据:
[LDH_Provider_Crosswalk] t1(该表需要这些值)
验证类型 |证明类型描述
11 | 11空
43 | 43空
37 | 37空

表格中的示例数据:
[LevelofCareCrosswalk] t2(此表包含值)
验证类型 |证明类型描述
11 | 11危机受理中心
43 | 43治疗性寄养
37 | 37中心休息

做了更多研究。看来更新声明是正确的选择。

mysql sql sql-update conditional-statements insert-into
1个回答
0
投票

我明白了。我只需要从 set 语句中删除别名即可。

UPDATE [LDH_Provider_Crosswalk]
SET [ProvTypeDesc] = t2.ProvType_Desc
FROM [LDH_Provider_Crosswalk] t1 
JOIN [LevelofCareCrosswalk] t2
ON t1.ProvType = t2.ProvType
© www.soinside.com 2019 - 2024. All rights reserved.