私はapache camelを使用してサードパーティのデータベースから読み込むコネクタアプリケーションを持っています。私はH2データベースを使って同じデータベースとクエリ操作を模擬しようとしているので、テストのためにthirdpartyデータベースへの接続は必要ありません。 データベースはMS SQL Serverにあります。私はH2データベースでSQLServerとしてModeを使用しています。しかし、私はif-else条件付きのmssqlクエリを持っています。実行しようとすると、次のエラーが発生します。H2データベースクエリのIf-Else条件
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]
私は条件付きクエリはH2データベースではサポートされていないと仮定しています:
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と互換性のあるmssqlクエリを変更できますか?
実際のクエリは大きすぎますので、ここに貼り付けたくありませんでした。条件が一致する場合は、別のクエリを実行する必要があります。シナリオをテストするために、単純なクエリを作成しました。 –