Nombre aléatoire sur SQL sans l'aide de NewID()
Bonjour je veux générer un nombre Aléatoire Unique avec l'aide de la suivre déclaration :
Convert(int, (CHECKSUM(NEWID()))*100000) AS [ITEM]
Cause lorsque j'utilise les jointures des clauses de "de", il génère un double des registres en utilisant la fonction NEWID()
Im à l'aide de SQL Server 2000
*PD : Lorsque j'utilise Rand (), probablement répéter l'opération sur la probabilité 1 de 100000000 mais c'est tellement criticall ainsi, il a à 0% de probabilité de répéter une valeur aléatoire générée
Ma Requête avec la fonction NewID() et le résultat sur l'instruction SELECT est dupliqué (x2)
Ma Requête sans NewID() et à l'aide de Rand() sur instruction SELECT est unique (x1), mais la probabilité de répéter la valeur aléatoire générée est hésitant mais existe!
Merci!
NEWID()
est SQL ServerQuel est le problème? SIGNE? Pas de virgule flottante? Dépassement de capacité? Il ya une raison pourquoi nous utilisons la fonction NEWID (): c'est probablement la meilleure solution
Escobedo, lorsque j'exécute votre commande: select Convert(int, (somme de contrôle(NEWID()))*100000) [POINT] j'obtiens: Msg 8115, Niveau 16, État 2, Ligne 1 erreur de dépassement Arithmétique expression de conversion de type de données int.
Je ne peux pas utiliser la fonction NEWID() parce que quand j'utilise une Jointure, il a généré un duplicité aussi si j'utilise Distinctes sur instruction SELECT
OriginalL'auteur Jonathan Escobedo | 2010-02-11
Vous devez vous connecter pour publier un commentaire.
Est-il dépassé?
Edit:
Il n'y a pas une telle chose comme 0% de chance de duplication nombre
De la somme de contrôle(NEWID())) renvoie un entier, qui dispose de 4 milliards de lignes. Le le paradoxe d'anniversaire signifie la chance de collision est beaucoup plus élevé, bien sûr.
Bigint (ci-dessus) ou décimale(38,0) de vous fournir beaucoup plus d'espace pour jouer avec, mais seulement de réduire le risque de collision, mais jamais à éliminer.
Mais ne comprends toujours pas pourquoi vous essayez de JOINDRE en un unique randomnumber...
ABS() Merci 🙂
OriginalL'auteur gbn
Voir ici: SQL Server - configurer en fonction des nombres aléatoires
OriginalL'auteur SQLMenace
Dans SQL Server, vous pouvez l'utiliser pour générer un nombre aléatoire, ou un nombre entier aléatoire entre les paramètres spécifiés
OriginalL'auteur Simon Mark Smith
Si vous utilisez MySQL
Doc MySQL:
http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand
Si vous utilisez Postgres
Postgres doc:
http://www.postgresql.org/docs/8.0/static/functions-math.html
OriginalL'auteur Daniel
Mettre à jour la colonne avec un seul chiffre
OriginalL'auteur Omerović Sanjin