如何根据条件将表B中的值填写到表A中

时间:2019-10-22 14:51:35

标签: sql oracle

我有一个矩阵A,它由一列A.ID组成。我用A.BIRTHDATE命令添加了另一列ALTER TABLE(见下文)。

现在,我想在A.BIRTHDATE中填写表B中匹配的出生日期,该日期由B.IDB.BIRTHDATE组成。

此论坛中有很多类似的示例,但是没有一个对我有用。我不知道这是否与Oracle-SQL有关,还是由于所提问题的微小差异。

建议的解决方案之一是利用UPDATE SETJOIN(请参见第二行代码)。

我收到一条错误消息,指出子查询每条记录有多个结果。该如何解决?

ALTER TABLE A ADD BIRTHDATE DATE NULL;

UPDATE A
    SET A.BIRTHDATE = (
        SELECT B.BIRTHDATE
        FROM B
        WHERE A.ID= B.ID
        );

1 个答案:

答案 0 :(得分:1)

表B中存在多个具有相同LAST_LOGIN的记录。

您需要确定您感兴趣的表B中的记录。

您可以使用 PaginatedResult<User> usersX = smartsheet.UserResources.ListUsers(null, new List<ListUserInclusion> { ListUserInclusion.LAST_LOGIN }, new PaginationParameters(true, null, null)); foreach (User tmpUser in usersX.Data) { Console.WriteLine(tmpUser.LastLogin); } 语句来更新表A中的值,如下所示:

constexpr frozen::set<int, 3> EARLIER_SET = { 1, 2, 3 };

此外,update语句应如下所示:

ID

干杯!