Generovanie riadkov v pgsql

Pavel Stehule stehule na kix.fsv.cvut.cz
Pondělí Červen 7 11:24:20 CEST 2004


Dobry den,

muzete pouzit sequence, viz http://postgresql.ok.cz/

Pavel


 Příkaz SELECT neumožňuje jednoduše číslovat řádky výstupu (existují různá 
nečistá řešení - níže, např. cross join tabulky na sebe s počítáním 
záznamů). V PostgreSQL existuje ale jednoduché a rychlé řešení - použitím 
dočasné sekvence:

  CREATE TEMP SEQUENCE aaa;
  SELECT nextval('aaa') AS "r.", * FROM lidi;
  DROP SEQUENCE aaa;

testdb011=# SELECT nextval('aaa') AS "r.", * FROM lidi;
 r. |  jmeno  | prijmeni
----+---------+-----------
  1 | Lubomír | Chroměčka
  2 | Jan     | Baloun
(2 řádek)

"Nečistým" řešením může být např. následující dotaz:

  SELECT COUNT(*), v.jmeno, v.prijmeni 
    FROM lidi CROSS JOIN lidi a 
    WHERE v.oid >= a.oid GROUP BY v.jmeno, v.prijmeni ORDER BY count;


On Mon, 7 Jun 2004, Milan KUNDRAT wrote:

> 
> Dobry den
> 
> 
> Pouzival pgsql. Potreboval by som generovat riadky s cislami a neviem si s tym 
> rady. Ked by som ako vstup zadal cislo n, tak by som potreboval vygenerovat 
> riadky s cislami od 1 do n.
> 
> nieco taketo
> 
> nemam_potuchy_aky_prikaz_alebo_funkcia (5)
> -----------------------------------------------------------------
> 1
> 2
> 3
> 4
> 5
> 
> Neviete mi prosim poradit?
> 
> 



Další informace o konferenci Test