Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server H2数据库查询中的If-Else条件_Sql Server_Scala_H2 - Fatal编程技术网

Sql server H2数据库查询中的If-Else条件

Sql server H2数据库查询中的If-Else条件,sql-server,scala,h2,Sql Server,Scala,H2,我有一个连接器应用程序,它使用ApacheCamel从第三方数据库读取数据。我试图使用H2数据库模拟相同的数据库和查询操作,这样测试就不需要连接到第三方数据库。 数据库位于MS SQL Server中。我在H2数据库中使用SQLServer模式。但是,我有一个带有if-else条件的mssql查询。当我尝试执行它时,我得到以下错误 MSSQL查询是 if((SELECT count(*) from Employee where DateCreated < '2016-02-02 00:05

我有一个连接器应用程序,它使用ApacheCamel从第三方数据库读取数据。我试图使用H2数据库模拟相同的数据库和查询操作,这样测试就不需要连接到第三方数据库。 数据库位于MS SQL Server中。我在H2数据库中使用SQLServer模式。但是,我有一个带有if-else条件的mssql查询。当我尝试执行它时,我得到以下错误

MSSQL查询是

if((SELECT count(*) from Employee where DateCreated < '2016-02-02 00:05:00')>1)
    SELECT TOP 10 * from Employee where DateCreated < '2016-02-02 00:05:00'
  else
    SELECT TOP 1 * from Employee where DateCreated < '2016-02-02 00:05:00'
我假设H2数据库中不支持条件查询。无论如何,我可以在H2中执行相同的查询吗?
最糟糕的情况是,是否有其他方法可以更改与H2兼容的mssql查询?

我认为没有。您可以在H2中使用命令来实现if/else效果,在应用程序中,您可以将要执行的条件和/或语句中的代码考虑在内,以便编写并在ms sql和H2请求中使用它。

实际查询太大,因此我不想将其粘贴到此处。如果条件匹配,我们需要执行一个查询,或者执行另一个查询。为了测试这个场景,我只创建了一个简单的查询。你能详细说明一下吗?H2语法是CASE WHEN expression THEN expression ELSE expression END问题是如何在CASE WHEN expression THEN statement ELSE expression END时执行CASE
Exception in thread "main" org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "  IF[*]((SELECT COUNT(*) FROM EMPLOYEE)>1)
    SELECT TOP 10 * FROM EMPLOYEE
  ELSE
    SELECT TOP 1 * FROM EMPLOYEE "; expected "INSERT, {"; SQL statement:
  if((SELECT count(*) from Employee)>1)
    SELECT TOP 10 * from Employee
  else
    SELECT TOP 1 * from Employee [42001-185]