我想用253行' M'填充我的数据库表的一列。和' F'随机放在列中,这可能吗?
它的外观示例:
Gender:
M
M
F
M
F
F
M
F
M
答案 0 :(得分:3)
对于MS SQL,您可以使用NEWID和CHECKSUM等功能:
UPDATE Users
SET Gender = (CASE WHEN ABS(CHECKSUM(NEWID()) % 2) = 1 THEN 'M' ELSE 'F' END)
NEWID()将生成随机GUID
CHECKSUM()将生成该GUID的哈希值
ABS()使其为1或0
警告!虽然有些人建议使用RAND功能 - 请不要使用来处理这种特殊情况。像这样的查询:
UPDATE Users SET Gender = CASE WHEN (RAND() > 0.5) THEN 'M' ELSE 'F' END
..将导致您拥有M或F的所有值。
可能你可以使用像Id那样的值来RAND函数,但是值的分布将不是很好:比如前30-40%全M,然后30-40%全F,然后M再次。
答案 1 :(得分:0)
尝试这样做可以减少" 0.5"如果你想要" M"以提高被选中的几率。更具优势。
SELECT CASE WHEN (RAND() > 0.5) THEN 'M' ELSE 'F' END
答案 2 :(得分:0)
您可以使用RAND()函数。
请阅读以下网址: [在此输入链接描述] [1]
https://docs.microsoft.com/en-us/sql/t-sql/functions/rand-transact-sql