【问题标题】:T-SQL query to remove non matching value from ColumnA where value doesn't exist in ColumnBT-SQL 查询从 ColumnA 中删除不匹配的值,其中 ColumnB 中不存在值
【发布时间】:2010-09-28 16:45:30
【问题描述】:

我有两个数据库,有以下表格:

数据库A 表A A 列 (varChar(10)

数据库B 表B ColumnB (varChar(10)

我需要一个查询:

  • 忽略 NULL 或空字符串
  • 查找列 B 中不存在 ColumnA 值的行
    • 在这种情况下,将 ColumnA 中不匹配行的值替换为 ''(空字符串)

这是在 MS SQL Server 2008 环境中。

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008


    【解决方案1】:

    您可以使用LEFT OUTER JOIN 执行此操作,如下所示:

    UPDATE TableA
    SET columnA = ''
    FROM
        TableA 
        LEFT JOIN TableB ON TableA.columnA = TableB.columnB
    WHERE
        TableA.columnA IS NOT NULL AND TableA.columnA <> '' AND
        TableB.columnB IS NULL;
    

    【讨论】:

      【解决方案2】:
      UPDATE TableA 
      SET ColumnA = ''
      WHERE  ColumnA IS NOT NULL 
        AND ColumnA <> '' 
        AND NOT EXISTS
           (
           SELECT *
           FROM TableB WHERE TableB.ColumnB = TableA.ColumnA
           )
      

      【讨论】:

        猜你喜欢
        • 2018-03-15
        • 2022-11-01
        • 2018-04-28
        • 1970-01-01
        • 1970-01-01
        • 2013-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多