Я пытаюсь создать рекурсивный запрос с H2, но я не могу заставить его работать.
Рекурсивный запрос, который я пытаюсь получить, является чем-то вроде ответа от на этот предыдущий вопрос, который я задал StackOverflow . Я пытаюсь создать запрос для тестирования JUnit, так как H2 не может создать истинную хранимую процедуру (код Java, работающий с наборами результатов, не является хорошим ответом, поскольку он полностью пропускает большую часть моего тестируемого кода).
Я полностью прочитал документацию по H2 и попробовал что-то простое, а именно - использовать один из примеров из H2 документации . Я обнаружил, что рекурсивный запрос, показанный в документации H2, не работает, когда я запускаю его в консоли: (
Я использую второй пример из ссылки на документацию:
WITH cte1 AS (
SELECT 1 AS FIRST_COLUMN
), cte2 AS (
SELECT FIRST_COLUMN+1 AS FIRST_COLUMN FROM cte1
)
SELECT sum(FIRST_COLUMN) FROM cte2;
Кто-нибудь знает, почему этот запрос не работает? Кажется, что если он есть в документации, он должен работать; может быть ошибка регрессии? Я использую H2 версию 1.4.188.
Похоже, H2 не нравится, что значение из CTE не указано (например, cte1(FIRST_COLUMN)
), но документы показывают, что это не требуется. Однако даже если я это исправлю, произойдет сбой через запятую после закрывающей скобки первого CTE, в которой я застрял с запросом, который пытаюсь написать.