J'essaie de sélectionner un sous-ensemble aléatoire d'enregistrements en utilisant rand() ou newid(), mais chaque fois que je lance ce qui suit, je reçois toujours les mêmes résultats :Sélection d'un sous-ensemble aléatoire en SQL (Sybase Server IQ)
SELECT *,rand() as rid
INTO #mytable
FROM othertable
select top 10 * from #mytable order by rid
J'ai essayé toutes les variantes de cela, mais il semble que iq serveur sybase renvoie toujours la même valeur rand() quand je le fais comme ci-dessus. Quand j'essaie de faire
SELECT * FROM othertable order by newid()
Je reçois une erreur disant qu'il est illégal d'utiliser newid() dans l'ordre.
Des suggestions?
Vous voulez voir le générateur de nombres aléatoires avant de faire des appels à rand(). Je vous suggère de le mettre dans un proc stocké; Vous pouvez ensuite graver le générateur de nombres aléatoires puis exécuter la première requête. 'ORDER BY NEWID()' est spécifique à MS SQL Server, donc cela ne fonctionnerait pas dans Sybase. Le fil suivant pourrait être utile: http://database.ittoolbox.com/groups/technical-functional/sybase-l/using-the-function-rand-on-sybase-iq-1547367 –
Je pense que vous voulez dire "__seed__ le générateur de nombres aléatoires "... –