根据表达式中的多个条件更新单个列
Update a single column based on multiple conditions in an expression
我正在尝试更新单个列中的所有值。该列当前仅包含 NULL 值。
table 中有两列要更新,table 应从中获取需要匹配的新数据才能进行更新。
查了一下问题,这里需要解决的方法好像之前没有提到
到目前为止我想出的代码是(有点不起作用):
UPDATE ANSWER_PATTERN AS outer
SET outer.ANSWER_DURATION =
(
SELECT inner.ANSWER_DURATION
FROM PREP_ANSWER_DURATION AS inner
WHERE (inner.TEST_ITEM_EXT_ID,
inner.STUDENT_EXT_ID) =
(outer.TEST_ITEM_EXT_ID,
outer.STUDENT_EXT_ID)
);
那么,如果 TEST_ITEM_EXT_ID,我如何才能将 ANSWER_DURATION 列中的 table2 的值转换为 table1 中的 ANSWER_DURATION 列和 STUDENT_EXT_ID 列都匹配吗?
我很乐意提供任何帮助。 :-)
以下是您的操作方法:
UPDATE outer, inner
SET outer.ANSWER_DURATION = inner.ANSWER_DURATION
WHERE inner.TEST_ITEM_EXT_ID=outer.TEST_ITEM_EXT_ID AND
inner.STUDENT_EXT_ID=outer.STUDENT_EXT_ID;
我认为这可以满足您的需求。我对您的数据库风格没有经验,但这就是我使用 PostgreSQL 解决问题的方式。
UPDATE ANSWER_PATTERN t1
SET ANSWER_DURATION = t2.ANSWER_DURATION
FROM PREP_ANSWER_DURATION t2
WHERE t2.TEST_ITEM_EXT_ID = t1.TEST_ITEM_EXT_ID
AND t2.STUDENT_EXT_ID = t1.STUDENT_EXT_ID;
我正在尝试更新单个列中的所有值。该列当前仅包含 NULL 值。
table 中有两列要更新,table 应从中获取需要匹配的新数据才能进行更新。
查了一下问题,这里需要解决的方法好像之前没有提到
到目前为止我想出的代码是(有点不起作用):
UPDATE ANSWER_PATTERN AS outer
SET outer.ANSWER_DURATION =
(
SELECT inner.ANSWER_DURATION
FROM PREP_ANSWER_DURATION AS inner
WHERE (inner.TEST_ITEM_EXT_ID,
inner.STUDENT_EXT_ID) =
(outer.TEST_ITEM_EXT_ID,
outer.STUDENT_EXT_ID)
);
那么,如果 TEST_ITEM_EXT_ID,我如何才能将 ANSWER_DURATION 列中的 table2 的值转换为 table1 中的 ANSWER_DURATION 列和 STUDENT_EXT_ID 列都匹配吗?
我很乐意提供任何帮助。 :-)
以下是您的操作方法:
UPDATE outer, inner
SET outer.ANSWER_DURATION = inner.ANSWER_DURATION
WHERE inner.TEST_ITEM_EXT_ID=outer.TEST_ITEM_EXT_ID AND
inner.STUDENT_EXT_ID=outer.STUDENT_EXT_ID;
我认为这可以满足您的需求。我对您的数据库风格没有经验,但这就是我使用 PostgreSQL 解决问题的方式。
UPDATE ANSWER_PATTERN t1
SET ANSWER_DURATION = t2.ANSWER_DURATION
FROM PREP_ANSWER_DURATION t2
WHERE t2.TEST_ITEM_EXT_ID = t1.TEST_ITEM_EXT_ID
AND t2.STUDENT_EXT_ID = t1.STUDENT_EXT_ID;