2011-12-17 16 views
9

Voglio che la mia funzione generi numeri float (come: -123.000, 874.000) nell'intervallo (come tra: 272 e 3357) e aggiorni il campo "pos_x" numeri float univoci. Scrivo questo codice ma vedo che il campo della mia tabella è identico e anche intero e sono positivi.SQL Server: riempire una colonna con numeri decimali casuali

questo è il mio codice:

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

risposta

12

RAND viene valutata volta per query

È possibile seeding in questo modo pur usando CHECKSUM(NEWID()) quindi è casuale per riga

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

Tuttavia, puoi anche ritagliare il middle man se usi ROUND (.. , 0)

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

se scrivo questo codice ho bisogno di un ciclo o qualcosa del genere? –

+0

@rN u: no, questo è tutto ciò che serve – gbn

+0

e se volessi generare nel raggio d'azione? –