2011-12-17 14 views
9

Quiero que mi función genere números flotantes (como: -123.000, 874.000) en el rango (como entre: 272 y 3357) y actualice cada registro campo "pos_x" con números de flotación únicos. Escribo este código pero veo que el campo de mi tabla es idéntico y también entero y positivo.Servidor SQL: complete una columna con números decimales aleatorios

este es mi código:

UPDATE Driver_tbl 
SET pos_x = (ROUND((RAND()* 10000),0)) 

Respuesta

12

se evalúa RAND vez por consulta

Puedes sembrar como este, aunque el uso de CHECKSUM(NEWID()) por lo que es aleatorio por fila

UPDATE Driver_tbl 
SET pos_x = ROUND(RAND(CHECKSUM(NEWID())) * (3357-272),0) + 272 

Sin embargo, también puede cortar al intermediario si está utilizando REDONDO (... , 0)

UPDATE Driver_tbl 
SET pos_x = ABS(CHECKSUM(NEWID())) % 9999 
+0

si escribo este código ¿necesito algún bucle o algo? –

+0

@rN uǝɹɐ: no, esto es todo lo que necesita – gbn

+0

¿y si quisiera generar en rango? –