PDA

View Full Version : SQL: Restituire un rage di risultati da una query


The March
27-07-2006, 17:24
Ola :D

Ho una query che mi restituisce un numero di righe troppo grosso...

ho trovato modo di recuperarne i primi 100 ( ad esempio )
ma non come ottenere un range :stordita:
ad esempio dalla 200esima alla 300esima riga :stordita:

sono su microsoft sql server 2003, mi sembrava di ricordare che ci fosse un comando che restituiva il numero ogni record ( tipo "select id, start_time, record_index..." ) e speravo di filtrare su quello :mbe: ma nn son riuscito a trovarlo :stordita:

qualcuno ha qualche idea?

Nightmare
28-07-2006, 06:22
su oracle c'è ROWNUMBER
cioè fai una select tipo:
SELECT nome,cognome FORM impiegati WHERE ROWNUM between '100' asd '200'

trallallero
28-07-2006, 07:35
su oracle c'è ROWNUMBER
cioè fai una select tipo:
SELECT nome,cognome FORM impiegati WHERE ROWNUM between '100' asd '200'
1 riga 5 errori :D
ROWNUM non é un campo di una tabella quindi non puoi fare BETWEEN (e poi non é un char quindi niente apici).
Nel tuo caso Oracle esegue la query, alla prima riga ROWNUM = 1 quindi FALSO quindi fine query.
ROWNUM puó essere usato solo con "< n" o "= 1" perché é l'unico modo per rendere vera la condizione.
Comunque The March lavora con MS quindi non iene pó fregá de meno :D

The March
28-07-2006, 08:53
1 riga 5 errori :D
ROWNUM non é un campo di una tabella quindi non puoi fare BETWEEN (e poi non é un char quindi niente apici).
Nel tuo caso Oracle esegue la query, alla prima riga ROWNUM = 1 quindi FALSO quindi fine query.
ROWNUM puó essere usato solo con "< n" o "= 1" perché é l'unico modo per rendere vera la condizione.
Comunque The March lavora con MS quindi non iene pó fregá de meno :D


e si è quello che mi ricordavo pure io..

ma su MS nn esiste niente di simile?


cioè scusate se uno ha una query che restituisce 500000 record non può filtrarsi un range di risultati?



contando che nn posso.. hem.. potrei usare tsql funzioni e stored procedure :muro:

però piuttosto due righe di tsql ce le butto... ma funzioni e stored procedure guai...
col FETCH e i cursori lanciando un solo comando di testo si riesce a scorrere un range di risultati? qualcuno sa farlo? :mbe: :stordita: :(

The March
31-07-2006, 08:40
:help: Up!

The March
01-08-2006, 10:25
qualche accrocchio per risolvere il problema..

Link (http://codeproject.com/aspnet/paginglarge.asp)