我想填充我的数据库表的一列,在列中随机放置253行'M'和'F',这可能吗?
它的外观示例:
Gender:
M
M
F
M
F
F
M
F
M
Run Code Online (Sandbox Code Playgroud)
对于 MS SQL,您可以使用NEWID和CHECKSUM函数,例如:
UPDATE Users
SET Gender = (CASE WHEN ABS(CHECKSUM(NEWID()) % 2) = 1 THEN 'M' ELSE 'F' END)
Run Code Online (Sandbox Code Playgroud)
NEWID() 将生成随机 GUID
CHECKSUM() 将生成该 GUID 的哈希值
ABS() 使其变为 1 或 0
警告!虽然有些人建议使用RAND函数 -请不要在这种特殊情况下使用它。查询如下:
UPDATE Users SET Gender = CASE WHEN (RAND() > 0.5) THEN 'M' ELSE 'F' END
Run Code Online (Sandbox Code Playgroud)
.. 将导致您拥有所有值 M 或 F。
您可能可以使用Id 之类的某个值作为RAND函数的种子,但值的分布不会很好:例如首先 30-40% 全部为 M,然后 30-40% 全部为 F,然后再次为 M。