Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    SQL & ACCESS: Estrarre record a caso

    Che stringa SQL posso usare per estrarre 5 record a caso da una tabella?

    Io farei così: "SELECT TOP 5 FROM Tabella"
    e imposterei ORDER BY in modo casuale... ma come???

  2. #2
    Per estrarre un record casuale utilizzando SQL Server, possiamo sfruttare l'apposita funzione rand(), che genera un numero casuale.
    SELECT TOP 1 * FROM tabella WHERE ID = (rand() * (SELECT MAX(ID) FROM tabella))

    Tuttavia questo lo script era impreciso su tabelle all'interno delle quali la chiave primaria avesse dei record cancellati.
    Utilizzando invece la funzione NEWID (in genere utilizzata per generare una nuova GUID) è possibile estrarre un record in maniera casuale:
    SELECT TOP 1 * FROM tabella ORDER BY NEWID()


    ciao
    -Nextart.it Graphic Solutions

  3. #3
    mi dà questo errore così...

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Undefined function 'NEWID' in expression.

  4. #4
    Originariamente inviato da rudimessi
    mi dà questo errore così...

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Undefined function 'NEWID' in expression.
    Temo che non funzioni su Access. Funziona però su SQL Server.

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.