Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    44

    SQL - Selezionare solo i record da N a M come fare?

    La prima volta non mi sto spiegando bene perciò ci riprovo...
    a me serve una selezione non su un campo ma sulla posizione che i campi occupano nella selezione...

    provo a farvi un esempio con questa tabella non pensate a ke significato possa avere perchè nn ne ha alcuno e solo d'esempio...

    C_Date C_Country Punti
    31-gen-00 Croazia 2
    04-mar-00 Brasile 4
    05-gen-00 Francia 4
    09-mar-00 Inghilterra 6
    07-gen-00 Irlanda 6
    30-gen-00 Scozia 2
    19-feb-00 Argentina 12
    20-mar-00 Turchia 1
    13-gen-00 Giappone 1
    19-feb-00 Romania 2
    20-mar-00 Bulgaria 3
    24-gen-00 Spagna 23
    18-feb-00 Olanda 4

    Non voglio selezionare ne per la data ne per nome ma voglio selezionare per esempio dal quinto al ottavo record, dal settimo al dodicesimo e cosi via

    Be ora dovrebbe essere + chiaro... spero che abbiate ancora due min di tempo da dedicarmi... Mille grazie comunque... ciaociao
    Stefano

  2. #2
    http://forum.html.it/forum/showthrea...hreadid=125609

    come vedi il problema si puo risolvere, nel tuo caso, purtoppo non nel mio in quanto la mia query avrebbe dovuto agire prendendo una tabella come parametro.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    44
    Mi togli una curiosità quete righe sono scritte il SQL?scusa l'ignoranza ma non ho mai visto nessuno di questi comandi...

    exec ('declare k cursor STATIC for ' + @table)

    open k

    fetch absolute 20 from k

    deallocate k

    Grazie mille...
    ciaociao Stefano

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    44
    Ho trovato questo comando...

    "SELECT @@Identity,colonna1,colonna2 FROM Clienti ORDER BY Codice"

    che mi restituisce la prima colonna con il numero di riga (quella su cui io vorrei fare la selezione) e poi le altre colonne selezionate pero non mi posso fare la selezione sulla colonna @@Identity ... per te c'è un modo di farla?
    ciaociao
    e ovviamente mille grazie!

  5. #5
    Si si, è proprio SQL, ti invio lo script completo (anzi la stored procedure), modificato per essere usato con il database di prova authors di sql server.

    spero di non farmi bannare per i mie lunghi post.

    codice:
    create procedure AuthorRigaPerRiga
    
    
    /* variabile n contiene riga di partenza */
    /* variabile m contiene numero di righe */
    @n int, @m int
    
    as
    
    
    /* 
    creo una tabella temporanea con la stessa struttura 
    dell'originale su cui faccio le query 
    eliminando eventuali campi non interessanti per la query, 
    volendo  aggiungo un campo per il numero di riga
    */
    
    if exists (Select [name] from tempdb..sysobjects 
               where id=OBJECT_ID('tempdb..#authors'))
    	   drop table #authors
    
    CREATE TABLE #authors (
    	au_id varchar (11) NOT NULL ,
    	au_lname varchar (40)  NOT NULL ,
    	au_fname varchar (20) NOT NULL ,
    	phone char (12)  NOT NULL ,
    	address varchar (40) NULL ,
    	city varchar (20) NULL ,
    	state char (2) NULL ,
    	zip char (5)  NULL ,
    	contract bit NOT NULL ,
    	riga int
    
    ) 
    /* dichiaro una variabile dello stesso tipo nella tabella 
    temporanea per ogni campo */
    declare @au_id id,
    	@au_lname varchar(40),
    	@au_fname varchar (20),
    	@phone char (12),
    	@address varchar (40),
    	@city varchar (20),
    	@state char (2),
    	@ip char (2),
    	@contract bit
    	
    /* cursore */
    declare  k SCROLL cursor  for select * from authors  
    /* apro */
    open k
    /* recupero una riga nelle variabili*/
    fetch absolute @n from k into
    	@au_id,
    	@au_lname,
    	@au_fname,
    	@phone,
    	@address,
    	@city,
    	@state,
    	@ip ,
    	@contract
    
    insert into #authors values
    	(
    		@au_id,
    		@au_lname,
    		@au_fname,
    		@phone,
    		@address,
    		@city,
    		@state,
    		@ip ,
    		@contract,
    		@n+@m
    	)
    
    while (@@fetch_status = 0 And @m>1)
    begin
    	set @m = @m-1
    	
    	
    	
    	fetch next from k into
    	@au_id,
    	@au_lname,
    	@au_fname,
    	@phone,
    	@address,
    	@city,
    	@state,
    	@ip ,
    	@contract
    
    	insert into #authors values
    	(
    		@au_id,
    		@au_lname,
    		@au_fname,
    		@phone,
    		@address,
    		@city,
    		@state,
    		@ip ,
    		@contract,
    		@n+@m
    	)
    end
    close k
    deallocate k
    
    select * from #authors

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    44
    Sei stato gentilissimo nel postarmi questo codice però non ho abbastanza conoscenze di SQL per poterlo modificare per il mio caso...Cmq nuovamente grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.