[英]IF function in H2 for MySQL compatibility
我正在使用H2(使用MySQL兼容模式)为我们使用MySQL的软件编写一些自动化测试。 不幸的是,似乎H2没有我们的许多查询使用的IF
函数。 如果没有用DECODE这样的方式重写我们的应用程序查询,那么它们是创建if函数的好方法,比如说是Alias吗?
我得到的错误:
WARNING: Failed to execute: SELECT IF(true,'TRUE!!','FALSE!!!') because: Function "IF" not found; SQL statement:
结束只重写查询以使用与数据库兼容的函数 - H2,MySql。 就我而言,有问题的功能被IFNULL取代。
是的,您可以将if函数创建为别名:
CREATE ALIAS IF NOT EXISTS `IF` AS $$
String ifFunction(boolean condition, String exp1, String exp2){
if(condition) {
return exp1;
} else {
return exp2;
}
}
$$;
我刚才遇到了同样的问题,我用CASE/WHEN/THEN
SQL语句解决了这个问题。 因此,您可以按如下方式重写查询:
SELECT CASE WHEN true THEN 'TRUE!!' ELSE 'FALSE!!!' END;
当然它更冗长,但它适合H2和MySQL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.