UPDATE Table_A
SET Column_A =
(SELECT Table_C.Column_C
FROM
Table_A
INNER JOIN
Table_B
ON
Table_A.Column_A1 = Table_B.Column_B
INNER JOIN
Table_C
ON
Table_B.Column_B1 = Table_C.Column_C1
WHERE
Table_C.Column_C2 <> 'T' and
Table_C.Column_C3 = 'T' and
Table_B.Column_B2 = 'T' and Table_B.Column_B3 = 'xyz');
У меня есть подзапрос в скобках, возвращающий 10 значений, которые я хочу обновить с помощью Table_A. Но оператор обновления только хочет одно значение, возвращаемое из подзапроса:Ошибка Oracle SQL - однострочный подзапрос возвращает более одной строки
ORA-01427: однорядные подзапрос возвращает более одной строки
Как я могу обновить несколько строк вместо только один?
Любые темы, которые я видел при этой ошибке, не помогают решить проблему.
EDITED - Будет ли способ сделать это, используя петлю?
Во-первых, это SQL-сервер или Oracle? Во-вторых, просьба привести пример ваших данных (предпочтительно DDL и DML-операторов для таблицы и вставок) и пример вашего ожидаемого результата. – MT0
Пожалуйста, внесите ваше полное заявление тоже – Aleksej
Трудно сказать, не видя, что такое инструкция обновления. Однако, если вы ожидаете более одной строки из подзапроса, тогда используйте «IN» вместо «=» –