Zapytanie sql, które zwróci dwa identyczne wiersze

0

Mam pytanie czy jest możliwość utworzenia zapytania w taki sposób, żeby pomimo jednego wpisu w bazie zwróciło mi kilka w zależności od wartości jednego pola np.
mam w bazie wpis:
jakis | czlowiek | cos | 2

Zapytanie select * from tabela zwróci mi to co powyżej. A chciałbym, żeby patrząc na w tym wypadku wartość 2 zwróciło mi dwa wiersze tj.
jakis | czlowiek | cos
jakis | czlowiek | cos
Ogólnie ta dwójka jest informacją ile wiersz ma mi zwrócić zapytanie. Nie chciałbym tego robić poprzez funkcję albo jakieś dodatkowe wpisy w bazie.Chodzi mi o to czy jest jakieś rozwiązanie do select

1

Rekurencja:

WITH RECURSIVE dt(kol1, kol2, kol3, i, w) AS (
        SELECT t.kol1, t.kol2, t.kol3, t.i, 1
        FROM tab t
      UNION ALL
        SELECT t.kol1, t.kol2, t.kol3, t.i, w + 1
        FROM tab t , dt
        WHERE t.kol2 = dt.kol2 and t.i > w
)
SELECT kol1, kol2, kol3 FROM dt order by kol2;

http://sqlfiddle.com/#!17/d36e7/10

2

W postgreSQL można wykorzystać generate_series. Np tak:

with dane as
(select 'jakis' kol1, 'czlowiek' kol2, 'cos' kol3, 2::integer ilosc)
select *, generate_series(1, ilosc) from dane

1 użytkowników online, w tym zalogowanych: 0, gości: 1