Вопрос

Я пытаюсь найти эквивалент 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(;;), о котором вы только можете мечтать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top