Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    Estrarre un insieme casuale di record utilizzando SQL

    Buongiorno a tutti,
    sapete se esiste un modo di selezionare un insieme casuale di record da una tabella utilizzando SQL standard?
    Kisses,

    Nat

  2. #2
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483
    usi sql oppure hai anche linguaggi ??

    se si lo puoi fare con vbs

    randomize()
    random etc etc
    e poi fai le query


  3. #3
    Prova con una stored proc del genere:
    codice:
    SET NOCOUNT ON
    
    CREATE TABLE #temp (
    	ID int NOT NULL, 
    	RandNum float NULL
    )
    
    INSERT #temp (ID)
    	SELECT ID FROM tabella
    
    DECLARE @rn SMALLINT
    
    DECLARE rz CURSOR FOR
    	SELECT RandNum FROM #temp
    
    OPEN rz
    
    	fetch next from rz into @rn
    	WHILE @@Fetch_Status = 0
    	BEGIN
    		UPDATE #temp SET RandNum = rand()
    		WHERE CURRENT OF rz
    		FETCH NEXT FROM rz into @rn
    	END
    CLOSE rz
    DEALLOCATE rz
    SET NOCOUNT OFF
    
    SELECT campo1, campo2 FROM #temp 
      INNER JOIN tabella ON #temp.ID = tabella.ID ORDER BY RandNum

  4. #4
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    Mi fai l'esempio completo in VBS?
    Kisses,

    Nat

  5. #5
    Natasha scusa.. ti prego di seguire il punto 5 del regolamento così riusciamo a mettere un pò d'ordine sul forum

    http://forum.html.it/forum/showthrea...hreadid=128040

  6. #6
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483
    Originariamente inviato da natasha
    Mi fai l'esempio completo in VBS?
    Kisses,

    Nat
    mi emoziono

    comunque ciò che dice zofm non si discute .....
    per VBS

    codice:
    dim NRecVisti
    Dim SQL,TotaleRec
    Dim Arr as Array
    Dim DB as adodb.connection
    Dim RS as adodb.recordset
    
    Set DB = new.adodb.connection
    Set RS = new.adodb.recordset
    
    db.open StringaConn
    SQL= = "Select count(*) as tot from tabella"
    rst.open SQL,DB
    TotaleRec = rst("tot")
    rst.close
    
    'qui fai un ciclo per NrecVisti
    For I = 1 to NrecVisti
       randomize()
       Val = Int((TotaleRec * Rnd) + 1)
       SQL = "Select * from tabella where Numerochevuoi=" & VAL
       'apri il record
       rs.open SQL,DB
       'prendi i dati che vuoi
       'chiudi record
       rst.close
    next
    db.close
    set rs = nothing
    set db = nothing
    set rs

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 © 2026 vBulletin Solutions, Inc. All rights reserved.