首页 > 解决方案 > 选择不存在的位置后更新列

问题描述

在此处输入图像描述

从另一个表中选择不存在的记录后,如何更新列。当某些记录不存在时,需要将状态列更新为 0。

SELECT *
FROM [BankingServicesReconciliations].[dbo].[Test1] p1
WHERE p1.[Age] is  not null and
      Not EXISTS  (SELECT * FROM [BankingServicesReconciliations].[dbo].[Test2]  p2   WHERE ( p1.[Surname] =p2.[Surname]) )

标签: sqlsql-server

解决方案


您的代码基本上转换为update

UPDATE [BankingServicesReconciliations].[dbo].Test1
    SET status = 0
    WHERE Age is  not null and
          NOT EXISTS (SELECT 1
                      FROM [BankingServicesReconciliations].[dbo].[Test2] p2
                      WHERE p2.[Surname] = Test1.[Surname]
                     );

唯一的微妙之处是 SQL Server 不允许您在UPDATE子句中声明别名。您可以使用FROM子句,但在这种情况下似乎几乎没有必要。


推荐阅读