根据值是否存在更新值

时间:2018-09-07 09:06:06

标签: sql sql-update advantage-database-server

我似乎无法理解这样的情况:您有一个表,其中的ID多次针对不同的FAM_TYPES列出,如下例所示。基本上,我想更新VALID_TO列以匹配所有FAM_TYPE的VALID_FROM列,但仅当FAM_TYPE为ACT且该IDENT的关联FAM_VALUE为1时。我尝试使用WHERE语句,但最终只更新了FAM_TYPE为ACT的行。

IDENT   FAM_TYPE    FAM_VALUE   VALID_FROM  VALID_TO
61593   ACT            1        13/11/2017  12/01/2018
61593   LSF            1        13/11/2017  12/01/2018
61593   ACT            1        13/11/2017  22/12/2017
61593   ACT            1        13/11/2017  22/12/2017

1 个答案:

答案 0 :(得分:2)

可以使用IN和ADS中的sub-SELECT测试存在性。

您可能想要这样的东西:

UPDATE
  table
SET
  valid_to = valid_from
WHERE
  ident IN (SELECT ident from table WHERE fam_type = 'ACT' AND fam_value = 1)