use*_*188 18 sql oracle plsql oracle-sqldeveloper
如何更正以下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 ...;
Run Code Online (Sandbox Code Playgroud)
如果ClaimNo匹配,我将从Stmt表中获取ID,否则创建一个新ID.SQL中不允许这样做吗?我怎么能写这个陈述?
我现在正在coalesce部分出现"Missing Expression"错误.
Pat*_*man 36
你应该在select
s 周围放置括号:
coalesce( (SELECT ID FROM Stmt G WHERE G.CLAIMNO=C.CLNUMBER)
, (select StmtSeq.nextval from dual)
)
Run Code Online (Sandbox Code Playgroud)