次のSQLコード、特にCOALESCE部分を修正するにはどうすればよいですか?
insert into Stmt G (ID,blah,foo)
select
coalesce(SELECT ID FROM Stmt G WHERE G.CLAIMNO=C.CLNUMBER, select StmtSeq.nextval from dual),
c.blah,
d.foo
from claim c
left join d on ...;
ClaimNoが一致する場合は、Stmtテーブル自体からIDを取得します。それ以外の場合は、新しいIDを作成します。これはSQLでは許可されていませんか?他にどのようにこのステートメントを書くことができますか?
現在、合体部分で「Missing Expression」エラーが発生しています。
select
sを括弧で囲む必要があります。
coalesce( (SELECT ID FROM Stmt G WHERE G.CLAIMNO=C.CLNUMBER)
, (select StmtSeq.nextval from dual)
)