SQL 我如何像这样更新?

标签 sql t-sql sql-update

我正在尝试更新 [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/

相关文章:

sql - 如何在 Postgres 中使用 upsert

t-sql - Power BI 字段参数过滤

sql - 尝试在sql中计算累积和

sql - 外部查询的 FROM 子句中不存在派生表?

string - 向现有字符串添加一个字符

php - MySQL更新问题

MySQL |更新查询以填充子项

sql - Oracle SQL - 在 "in"语句上左连接

mysql - SQL:从右边开始的子串

mysql - 错误代码 : 1066. 不是唯一表/别名问题