database - Derby 中的条件语句

标签 database derby

看起来像derby不支持条件语句 [IF]。我们怎么写

if exists (select 1 from customers where name='somename') 
    update customers ...
else 
    insert into customers ...

在 Derby 中? Derby 也没有 mysql 的“替换成”。

注意:我使用 derby 作为 mysql 的单元测试替代品 [即生产将使用 mysql 而单元测试将使用 derby]。

最佳答案

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

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

CASE
 WHEN  select 1 from customers where name='somename' = 1 THEN update...
ELSE  insert...
END

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

编辑:在尝试了其中的一些之后...我不知道这是否真的对您有帮助。您似乎无法在 SELECT 和 INSERT 之间切换;它必须是一个或另一个,并且 CASE 进入内部。你想做的事可能会也可能不会...

关于database - Derby 中的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317265/

相关文章:

php - 选择字符串中的所有字符直到特定字符 MySQL

sql - 通过 FROM 中使用的表名自动运行?

php - 对多个字段使用相同的盐

database - 在数据库列中存储分隔列表真的那么糟糕吗?

sql - Derby 对 NULL 值的处理

sql - 如果 Worklight 数据库适配器中存在,则插入到表或更新

mysql - 访问不同数据库类型的单一数据库工具?

database - PostgreSQL 浮点运算和类型

java - 在一个语句中从两个表中删除

java - Derby 中的sql错误 - ERROR 42X01 : Syntax error: Encountered “WHERE”