Я пытаюсь обновить все строки в моем случае таблицы:обновить любую существующую строку
UPDATE CASE c
SET c.number =
(
select p.number
from CASE c, Papers p, Dokument d
where c.dokument = d.id
and p.id = d.paperid
and p.numer is not null
and c.case = null;
)
where
(this same as in set : when case.number is null but papers.numer is not null)
Я не могу этого сделать, потому что я не знаю, как писать ИНЕКЕ. Он должен обновлять все строки, где case.numer
имеет значение null, а papers.number
не равно нулю.
Как это можно написать? Могу ли я написать цикл? Я никогда не использовал PL/SQL, поэтому я не знаю, как это сделать.
Я также пытался обновить, как это, но получил сообщение об ошибке:
UPDATE s
SET s.number = w.number
FROM CASE s
JOIN Dokument d on d.CASEID =s.ID
JOIN Paper w on w.DOKUMENTID =d.ID and w.number is NOT NULL
WHERE s.number IS NULL
AND s.secondNumber IS NULL
AND s.FIRSTNAME = w.FIRSTNAME
AND s.SURNAME = w.SURNAME;
SQL Error: ORA-00933: polecenie SQL niepoprawnie zakończone
00933. 00000 - "SQL command not properly ended"
tsql или Oracle? Не вижу, чтобы вы использовали их вместе. – jarlh
На основании комментария в последнем предложении я удалил тег Oracle. –
Просьба указать, какие СУБД вы используете. Теперь вы добавили тег PL/SQL, который подходит для Oracle, а не SQL Server. Это важно. –