我正在尝试更新 [Temp_LTGData] 表中的所有 SQL 行,将 [CORP_REG_NO] 值设置为同一个表中与 [CUSTOMER_NUMBER] 匹配的另一行中的值。
最终我需要用相当多的列来完成此操作,有谁知道这是否可以完成?
我似乎无法像在选择查询中那样使用 LTGSource 别名:(
Update [MandS].[dbo].[Temp_LTGData] LTGSource
Set [CORP_REG_NO] = (SELECT [CORP_REG_NO]
FROM [MandS].[dbo].[Temp_LTGData]
WHERE ([CORP_REG_NO] IS NULL
AND [CUSTOMER_NUMBER] = LTGSource.[CUSTOMER_NUMBER] ))
where [CORP_REG_NO] IS NULL
感谢大家的反馈,这些反馈真的很棒,我什至学到了解决这个问题的一些不同方法(投票给你们所有人)。
最佳答案
尝试以下操作来准确了解您正在做的事情
UDPATE [MandS].[dbo].[Temp_LTGData] LTGSource
SET [CORP_REG_NO] = (SELECT [CORP_REG_NO]
FROM [MandS].[dbo].[Temp_LTGData]
WHERE ([CORP_REG_NO] IS NULL
AND [CUSTOMER_NUMBER] = ToUpdate.[CUSTOMER_NUMBER] ))
FROM {MandS].[dbo].[Temp_LTGData] ToUpdate
where [CORP_REG_NO] IS NULL
但是,您的查询中有一个错误,我相信子查询应该是 IS NOT NULL。
关于SQL 我如何像这样更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166162/