PDA

View Full Version : [SQL] aiuto con una query ... è urgente...


carMAN
08-12-2004, 18:29
Non riesco a risolvere questo problema:

ho una tabella chiamata,per esempio, TABLE che contiene una colonna 'ID'.
Vorrei scrivere una query SQL che mi restituisca tutti gli id contenuti nella tabella insieme ad un numero progressivo .
Per esempio:
Supponiamo che TABLE sia così fatta:
| ID |
------
| 34 |
| 54 |
| 45 |
| 32 |

la query dovrebbe essere del tipo

select id, ?progressivo?
from table;

e dovrebbe restituire:

| ID |
-----------
| 34 | 1 |
| 54 | 2 |
| 45 | 3 |
| 32 | 4 |
|......| 5 |

etc..

spero di essermi spiegato...

Grazie in anticipo...
ciao ciao

kingv
08-12-2004, 20:23
ciao carMAN, una buona idea quando si chiede qualcosa che non e' SQL standard (ovvero quasi tutto) è indicare la piattaforma sul quale hai bisogno della query (Oracle, Db2, mysql).



su Db2 (solo UDB) avevamo già affrontato la questione
http://forum.hwupgrade.it/showthread.php?s=&threadid=760659

carMAN
08-12-2004, 20:49
scusa per la distrazione....:rolleyes:

il db è oracle...
girando un pò ho trovato il comando sql rownum :
quando scrivo
select rownum,id
from table
ottengo quello che voglio.
Però non funziona la clausola where!!!
nel senso che se scrivo

select rownum,id
from table
where rownum=2

ottengo una riga vuota ed invece dovevo ottenere la seconda riga della tabella.

spero di essermi spiegato!!! ciao e grazie per l'aiuto

kingv
08-12-2004, 21:11
premesso che non ho qui un oracle prova con:


SELECT * FROM (SELECT rownum rn,id from table ) tabella
WHERE tabella.rn=2

carMAN
08-12-2004, 21:39
ti ringrazio tantissimo....
funziona perfettamente....

sirus
16-12-2004, 20:18
Originariamente inviato da kingv
premesso che non ho qui un oracle prova con:


SELECT * FROM (SELECT rownum rn,id from table ) tabella
WHERE tabella.rn=2

non mi torna una cosa, non sarebbe dovuto essere (SQL standard)
SELECT * FROM (SELECT rownum rn,id FROM table) AS tabella WHERE tabella.rn = 2 ???
:confused:

kingv
17-12-2004, 08:34
Originariamente inviato da sirus
non mi torna una cosa, non sarebbe dovuto essere (SQL standard)
SELECT * FROM (SELECT rownum rn,id FROM table) AS tabella WHERE tabella.rn = 2 ???
:confused:



in oracle AS e' totalmente opzionale, cmq se lo metti lo accetta.
generalmente non lo mette nessuno.

sirus
17-12-2004, 17:54
grazie ;)