2016-05-09 4 views
0

Связанные с/скопирована с этой PostgreSQL теме: so-linkповторение/дублирование записей запроса на основе значения таблицы

Скажем, у меня есть таблица с двумя рядами

id | value | 
----+-------+ 
1 | 2 | 
2 | 3 | 

Я хочу написать запрос, который будет дублировать (повторять) каждую строку на основе значения . Я хочу, чтобы этот результат (всего 5 строк):

id | value | 
----+-------+ 
1 | 2 | 
1 | 2 | 
2 | 3 | 
2 | 3 | 
2 | 3 | 

Как это возможно в SQL Anywhere (Sybase SQL)?

ответ

1

Самый простой способ сделать это - иметь таблицу чисел. , , который генерирует целые числа. Возможно, у вас есть одна удобная. Есть и другие способы. Например, с помощью рекурсивного ОТВ:

with numbers as (
     select 1 as n 
     union all 
     select n + 1 
     from numbers 
     where n < 100 
) 
select t.* 
from yourtable t join 
    numbers n 
    on n.n <= value; 

Не все версии Sybase обязательно поддерживают рекурсивные КТР Существуют и другие способы создания такой таблицы или вы, возможно, уже есть один удобный.

+0

Спасибо за ваш ответ. Я попробую, как только вернусь к работе завтра. –

Смежные вопросы