Selezionare le ultoime 5 righe immesse in un databse.

martedì 29 aprile 2008 - 13.51

86Marco Profilo | Expert

Salve nel mio progetto asp.net ho un repeater che mi collega al database news ed estrae le prime 5 righe dalla tabella news secondo la istruzione SELECT TOP 5 etc etc...

tutto va bene ma il problema è che il top estrae dal database le prime 5 righe, ciò significa che parte dall'alto non dall'ultima inserita.
Quello che mi servirebbe è far stampare a schermo le ultime 5 righe INSERITE nel database e non le prime 5!!!


Sapete aiutarmi???
Grazie

alx_81 Profilo | Guru

>Salve
Ciao!

>Quello che mi servirebbe è far stampare a schermo le ultime 5
>righe INSERITE nel database e non le prime 5!!!
Quando usi una top è buona norma definire l'ordinamento secondo cui estrarre le righe. Hai una data? Hai un ID incrementante?
In tal caso è sufficiente ordinare per quel campo DESC. E avrai sempre le ultime inserite.
>
>
>Grazie
di nulla!

Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

86Marco Profilo | Expert

Ciao innanzitutto ti ringrazio SEMPRE per le celeri risposte... ovviamente dovrebbe essere cosi, però fai finta che abbbia un database con i seguenti record.

ID-----Nome-------Cognome
1------Nome1-----Cognome1
2------Nome2------Cognome2
3------Nome3------Cognome3
4------Nome4------Cognome4
5------Nome5------Cognome5
6------Nome6------Cognome6
7------Nome7------Cognome7
8------Nome8------Cognome8
9------Nome9------Cognome9
10------Nome10------Cognome10

Spponendo di avere una SELECT top 5 id, Nome, Cognome from clienti DESC

io penso che prenderà comunque i primi 5 (quindi id 1,2,3,4 e 5) ma me li ordinerà in ordine decrescente ma sempre i primi 5 saranno....
E' cosi oppure ho detto una castroneria???
Ciao e Grazie

alx_81 Profilo | Guru

>Ciao innanzitutto ti ringrazio SEMPRE per le celeri risposte...
figurati!

>ID-----Nome-------Cognome
>1------Nome1-----Cognome1
>2------Nome2------Cognome2
>3------Nome3------Cognome3
>4------Nome4------Cognome4
>5------Nome5------Cognome5
>6------Nome6------Cognome6
>7------Nome7------Cognome7
>8------Nome8------Cognome8
>9------Nome9------Cognome9
>10------Nome10------Cognome10
>
>E' cosi oppure ho detto una castroneria???
no, la TOP 5 prende i primi in base all'ordinamento o, se non definito altrimenti, in base all'ordinamento che gli dà il dbms in quel momento (e non approfondisco )..

per ottenere gli ultimi 5 inseriti, se l'id è un identity che incrementa sempre, dovrai fare come segue:
SELECT TOP 5 Nome , Cognome FROM Clienti ORDER BY ID DESC

e otterrai rispettivamente il 10, il 9, 8, 7 e 6

>Ciao e Grazie
di nulla!
Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

86Marco Profilo | Expert

Grazie imille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5