私は、私の場合のテーブルのすべての行を更新しようとしています:更新既存の行
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)
私はwhere句の書き方を知らないので、私はこれを行うことはできません。 case.numer
がヌルで、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タグを削除しました。 –
使用しているDBMSを明確にしてください。 SQL Serverではなく、Oracleに適したPL/SQLタグが追加されました。これらのことが重要です。 –