эквивалент generate_series() в DB2
-
03-07-2019 - |
Вопрос
Я пытаюсь найти эквивалент DB2 для generate_series() (PostgreSQL-способ генерации строк).Я, очевидно, не хочу жестко кодировать строки с помощью ЦЕННОСТИ заявление.
select * from generate_series(2,4);
generate_series
-----------------
2
3
4
(3 rows)
Решение
Предложение where должно быть немного более явным в отношении границ рекурсии, чтобы DB2 могла подавить предупреждение.Вот слегка скорректированная версия, которая не вызывает предупреждения:
with dummy(id) as (
select 2 from SYSIBM.SYSDUMMY1
union all
select id + 1 from dummy where id < 4
)
select id from dummy
Другие советы
Мне удалось написать рекурсивный запрос, который подходит :
with dummy(id) as (
select 2 from SYSIBM.SYSDUMMY1
union all
select id + 1 from dummy where id + 1 between 2 and 4
)
select id from dummy
Запрос может быть адаптирован к любому for(;;), о котором вы только можете мечтать.
Не связан с StackOverflow