PDA

View Full Version : sql oracle


texerasmo
02-08-2005, 14:19
Ciao a tutti come posso fa re una cosa del genre con db di oracle?

Vorrei tirarmi fuori i primi 10 record a partire dalla 20 riga

Sistemista: select * from test order by limit 10 offset20

kingv
02-08-2005, 14:51
select * from test where ROWNUM between 20 AND 29

texerasmo
02-08-2005, 15:14
non mi reistirusce nulla :(

texerasmo
02-08-2005, 15:17
i record che ho sono 58
ho fatto un count

kingv
02-08-2005, 15:25
non mi reistirusce nulla :(


hai ragione :wtf:


eppure se usi <=9 per prendere le prime dieci righe funziona :boh:

texerasmo
02-08-2005, 15:33
confermoi ache a me funziona

eppure se usi <=9 per prendere le prime dieci righe

che mi consigli di fare?

texerasmo
02-08-2005, 16:12
a me hanno consigliato una cosa del genere ma ...:(

CREATE OR REPLACE PROCEDURE GC_PAGINA_MOV_CASSASPORTELLO
-- Restituisce un elenco di record di movimento
-- cassa sportello in modalità "paginata"
(
incodicecassa IN NUMBER,
indatainserimento IN DATE,
innumerorigheperpagina IN NUMBER,
innumeropaginarichiesta IN NUMBER,
outnumerorighetotali OUT NUMBER,
outlista OUT tipi.linecursor
)
AS
var_indicenumerorigainiziale NUMBER;
var_indicenumerorigafinale NUMBER;
BEGIN
var_indicenumerorigafinale :=
innumerorigheperpagina * innumeropaginarichiesta;
var_indicenumerorigainiziale :=
var_indicenumerorigafinale - innumerorigheperpagina;

SELECT COUNT (*)
INTO outnumerorighetotali
FROM movimentocassasportello
WHERE codicecassa = incodicecassa
AND TRUNC (datainserimento) = TRUNC (indatainserimento)
--AND codicestatomovimentosportello = 1;
AND codicestatomovimentosportello IN (1, 2);

OPEN outlista
FOR
SELECT progressivomovimentocassa, progressivomodifica, codicecassa,
datainserimento, codicetipomovimento, progressivogiornalieropra,
codicetiporichiedente, codicegruppo, codiceorganizzazione,
idutente, importototalepra, importototaledtt,
codicestatomovimentosportello, numerostampericevuta
FROM (SELECT ROWNUM rn, progressivomovimentocassa,
progressivomodifica, codicecassa, datainserimento,
codicetipomovimento, progressivogiornalieropra,
codicetiporichiedente, codicegruppo,
codiceorganizzazione, idutente, importototalepra,
importototaledtt, codicestatomovimentosportello,
numerostampericevuta
FROM movimentocassasportello
WHERE codicecassa = incodicecassa
AND TRUNC (datainserimento) = TRUNC (indatainserimento)
--AND codicestatomovimentosportello = 1
AND codicestatomovimentosportello IN (1, 2)
ORDER BY datainserimento) vista
WHERE vista.rn > var_indicenumerorigainiziale
AND vista.rn <= var_indicenumerorigafinale;
END;
/

kingv
02-08-2005, 16:23
così funziona:

SELECT T1.RN, T1.COLONNA1 FROM (SELECT ROWNUM RN, COLONNA1 FROM TEST ) T1 WHERE T1.RN BETWEEN 20 AND 29

texerasmo
02-08-2005, 16:45
non so come fai ma cmq sei un grande :)
a settembre per un cliente vengo dalle tue parti io ed il mio collega ti offriamo un cena. ;)

kingv
02-08-2005, 20:42
non so come fai ma cmq sei un grande :)
a settembre per un cliente vengo dalle tue parti io ed il mio collega ti offriamo un cena. ;)



:)

buone vacanze ;)

pippo985
03-08-2005, 14:19
non so come fai ma cmq sei un grande :)
a settembre per un cliente vengo dalle tue parti io ed il mio collega ti offriamo un cena. ;)

Scusami, una curiosità. Potresti dirmi che problema risolve questa SELECT?
Dovresti trovare.....

texerasmo
03-08-2005, 14:31
questa select funziona su oracle.
Mi restituisce 10 record a partire dalla 20 record
mentre su db di postgres uso la funzione limit insieme a offset
capito?

mailand
04-08-2005, 08:52
oppure così:

select * from T1 where rownum <= 30
minus
select * from T1 where rownum <=20

è un'altra via ;)

texerasmo
04-08-2005, 12:01
select * from T1 where rownum <= 30
minus
select * from T1 where rownum <=20

no mi funzia così :(

mailand
04-08-2005, 15:43
strano, l'ho testata stamattina e mi funzionava... :boh:

ma che versione di oracle usi?

texerasmo
04-08-2005, 16:27
10g

mailand
04-08-2005, 16:42
non l'ho ancora usata, ho provato solo su una 9.2i
comunque a me funziona anche se uso anche i singoli campi della tabella in abbinamento al rownum

texerasmo
04-08-2005, 16:48
l'ho appena riprovata ma nulla da fare,

un cosa sai come posso vedere chi è loggato sul mio database e cosa sta facendo?

Da enterprise manager console c'è la voce sessioni da li ho visto qualcosa.
ma non quello che cerco