如何更正以下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中不允许这样做吗?我怎么能写这个陈述?
我得到了一个"失踪的表情"现在合并部分出现错误。
答案 0 :(得分:30)
您应该在select
s:
coalesce( (SELECT ID FROM Stmt G WHERE G.CLAIMNO=C.CLNUMBER)
, (select StmtSeq.nextval from dual)
)