【问题标题】:Insert data into empty (null) column from another column where condition将数据从另一列插入到空(null)列中,其中条件
【发布时间】:2018-04-12 23:08:22
【问题描述】:

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

这需要从表 [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(此表需要值)
ProvType | ProvTypeDesc
11 |空
43 |空
37 |空

表格中的示例数据:
[LevelofCareCrosswalk] t2(此表包含值)
ProvType | ProvTypeDesc
11 |危机接收中心
43 |治疗性寄养
37 |基于中心的喘息

做了更多的研究。看起来更新语句是要走的路。

【问题讨论】:

  • 看起来您应该使用带有 where 子句的更新语句。
  • 请查看编辑。

标签: mysql sql sql-update conditional-statements insert-into


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2018-08-14
    • 1970-01-01
    相关资源
    最近更新 更多