如何编写更新查询以根据源表中是否存在更新目标表A列,其值为“Y”或“N”

时间:2016-04-22 10:20:09

标签: sql teradata

如果key_id_column存在于(SELECT ID_COLUMN FROM SOURCE_TBL中),我想更新目标表的A列,如果它不存在则更新值为'N'(SELECT ID_COLUMN FROM SOURCE_TBL)

2 个答案:

答案 0 :(得分:0)

update target_table 
set target_column = case when target_column in (select column from source_table) then 'Y' else 'N' end; 

希望这有效

答案 1 :(得分:0)

这是如何在Teradata上的OUTER JOIN语句中管理UPDATE的示例。您可能需要稍微调整一下,但它应该会让您更进一步。

UPDATE target_table 
   SET target_column = DT.indicator_column
  FROM (SELECT CASE WHEN tgt.key_id_column is not null
                    THEN 'Y'
                    ELSE 'N'
                END as indicator_column
          FROM source_table src
          LEFT JOIN
               target_table tgt
            ON src.id_column = tgt.key_id_column) DT;