在 SQL Server 中添加一个介于 1 和 5 之间的随机数的新列



我在SQL Server中已经填满了一个数据库表;现在我需要添加一个从1到5的随机数的新列(它们可以重复(。

要填充的行太多了,手动操作对我来说是行不通的。

我在互联网上搜索但没有找到任何有用的东西,有人知道该怎么做吗?

您可以使用ALTER TABLE添加新列,并同时为其指定DEFAULT值。如果还想填充这些值,请使用WITH VALUES

CREATE TABLE dbo.YourTable (ID int);
GO
INSERT INTO dbo.YourTable (ID)
VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
GO
--Add new column with DEFAULT value (1-5)
ALTER TABLE dbo.YourTable ADD NewColumn int DEFAULT ABS(CHECKSUM(NEWID()))%5+1 WITH VALUES;
GO
--Check values
SELECT *
FROM dbo.YourTable;
--Add a new row
INSERT INTO dbo.YourTable (ID)
VALUES(11);
--Check value
SELECT *
FROM dbo.YourTable
WHERE ID = 11;
GO
DROP TABLE dbo.YourTable;

一种方法是:

select t.*,
1 + floor( rand(newid()) * 5 )
from t;

您可以将其合并到update

update t
set col = 1 + floor( rand(newid()) * 5 );

相关内容

最新更新