我想更新表项的列ItemValue,其中包含在1和100之间随机生成的小数值(每行的值不同)。每个值应该有两个(随机)数字。
CREATE TABLE Items
(
ItemID int IDENTITY(1,1) NOT NULL,
ItemValue decimal(13, 4) NULL,
CONSTRAINT PK_Items PRIMARY KEY CLUSTERED (ItemID ASC)
)
INSERT INTO Items(ItemValue) VALUES (0)
INSERT INTO Items(ItemValue) VALUES (0)
INSERT INTO Items(ItemValue) VALUES (0)
INSERT INTO Items(ItemValue) VALUES (0)
-- Now, I want to update the table
答案 0 :(得分:11)
您可以使用 RAND 生成随机数。但是有一个问题 - RAND 每个查询只执行一次,因此所有行都将包含相同的随机值。您可以使用 CHECKSUM(NEWID())使其每行随机,例如
UPDATE items
SET itemValue = ROUND(RAND(CHECKSUM(NEWID())) * (100), 2)
答案 1 :(得分:2)
You could use this snippet to generate random decimal values:
CONVERT( DECIMAL(13, 4), 10 + (30-10)*RAND(CHECKSUM(NEWID()))
This will generate random decimal numbers between 10 and 30.