根据值是否存在更新值
Updating values based on whether a value exists
我似乎无法理解您有一个 table 的情况,其中多次列出不同 FAM_TYPES 的身份,如下所示的一个身份示例。基本上,我想更新 VALID_TO 列以匹配所有 FAM_TYPEs 的 VALID_FROM 列,但仅在有 ACT 的 FAM_TYPE 和关联的 FAM_VALUE 的情况下该 IDENT 为 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
存在可以用IN和ADS中的子SELECT来测试
你可能想要这样的东西:
UPDATE
table
SET
valid_to = valid_from
WHERE
ident IN (SELECT ident from table WHERE fam_type = 'ACT' AND fam_value = 1)
我似乎无法理解您有一个 table 的情况,其中多次列出不同 FAM_TYPES 的身份,如下所示的一个身份示例。基本上,我想更新 VALID_TO 列以匹配所有 FAM_TYPEs 的 VALID_FROM 列,但仅在有 ACT 的 FAM_TYPE 和关联的 FAM_VALUE 的情况下该 IDENT 为 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
存在可以用IN和ADS中的子SELECT来测试
你可能想要这样的东西:
UPDATE
table
SET
valid_to = valid_from
WHERE
ident IN (SELECT ident from table WHERE fam_type = 'ACT' AND fam_value = 1)