德比中的条件陈述

Fak*_*een 6 database derby

看起来德比不支持条件语句[IF].我们怎么写

if exists (select 1 from customers where name='somename') 
    update customers ...
else 
    insert into customers ...
Run Code Online (Sandbox Code Playgroud)

在德比?Derby也没有'替换'的mysql.

注意:我使用derby作为mysql的单元测试替代品[即生产将使用mysql,unit-test将使用derby].

小智 2

http://db.apache.org/derby/docs/10.2/ref/rrefcasenullif.html#rrefcasenullif怎么样?

   CASE
      WHEN 1 = 2 THEN 3
      WHEN 4 = 5 THEN 6
      ELSE 7
   END
Run Code Online (Sandbox Code Playgroud)

所以也许你可以尝试这样的事情:

CASE
 WHEN  select 1 from customers where name='somename' = 1 THEN update...
ELSE  insert...
END
Run Code Online (Sandbox Code Playgroud)

我不知道这是否有效,但这似乎是一个开始。祝你好运!

编辑:在尝试了其中一些之后......我不知道这是否真的会对您有帮助。看起来你不能在 SELECT 和 INSERT 之间切换;必须是其中之一,然后 CASE 就会进入。你想做的事可能实现,也可能不可能......