Posizione record.

lunedì 27 ottobre 2008 - 14.15

iif Profilo | Expert

Ciao, esiste un comando che mi permette di visualizzare un record preciso?
Per esempio vorrei visualizzare solo il record numero 10 ( intendo per 10 la posizione fisica del record all'interno di una tabella).
Select * from tabella ...

Grazie.

lbenaglia Profilo | Guru

>Per esempio vorrei visualizzare solo il record numero 10 ( intendo
>per 10 la posizione fisica del record all'interno di una tabella).
>Select * from tabella ...

In un RDBMS la posizione fisica di una riga in una tabella non ha alcun senso, dato che una query potrebbe restituire le righe in un ordine differente ad ogni esecuzione, a meno di specificare la clausola ORDER BY.
Se ti interessa restituire la riga i-esima, modifica la struttura della tabella aggiungendo una colonna numerica (eventualmente autoincrementante), tieni traccia del valore assegnato alla tua riga ed aggiungi alla query una nuova clausola WHERE ID = valore.

>Grazie.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

iif Profilo | Expert

Scusa, mi spiego meglio...
Ho due tabelle/query, dovrei leggere un record alla volta in modo parallelo su entrambe le tabelle, come faccio?

lbenaglia Profilo | Guru

>Ho due tabelle/query, dovrei leggere un record alla volta in
>modo parallelo su entrambe le tabelle, come faccio?

Spiegati con un esempio completo (struttura tabelle, dati, risultato finale), altrimenti è difficile seguirti.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

iif Profilo | Expert

Ok.
Ho la tabella A, B, C.
01 - Apro la tabella A
02 - Leggo il primo record
03 - Scrivo il record nella tabella C
04 - Leggo il primo record della tabella B
05 - Scrivo il record nella tabella C
06 - Leggo il record successivo della tabella A
07 - Scrivo il record nella tabella C
08 - Leggo il record successivo della tabella B
09 - Scrivo il record nella tabella C
10 - ciclo fino alla fine delle tabelle dal punto 06 al punto 09

- Le tabelle hanno ilnumero dei record identico.


lbenaglia Profilo | Guru

>Ho la tabella A, B, C.
>01 - Apro la tabella A
>02 - Leggo il primo record
>03 - Scrivo il record nella tabella C
>04 - Leggo il primo record della tabella B
>05 - Scrivo il record nella tabella C
>06 - Leggo il record successivo della tabella A
>07 - Scrivo il record nella tabella C
>08 - Leggo il record successivo della tabella B
>09 - Scrivo il record nella tabella C
>10 - ciclo fino alla fine delle tabelle dal punto 06 al punto
>09

Mi sfugge totalmente la logica di questo processo.
Come ti ho scritto nel primo post, in un RDBMS la posizione di una riga in una tabella non ha alcun significato.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

iif Profilo | Expert

Hai ragione, è roppo articolato, però ho risolto unendo con una union due query e le ho ordinate in un'altra query di livello superiore.
Grazie lo stesso.

lbenaglia Profilo | Guru

>Hai ragione, è roppo articolato, però ho risolto unendo con una
>union due query e le ho ordinate in un'altra query di livello
>superiore.
Sicuro che serva?
Applicando la clausola ORDER BY all'ultima SELECT, ordinerai l'intero result set.

>Grazie lo stesso.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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