我需要更新 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中心休息
做了更多研究。看来更新声明是正确的选择。
我明白了。我只需要从 set 语句中删除别名即可。
UPDATE [LDH_Provider_Crosswalk]
SET [ProvTypeDesc] = t2.ProvType_Desc
FROM [LDH_Provider_Crosswalk] t1
JOIN [LevelofCareCrosswalk] t2
ON t1.ProvType = t2.ProvType