我想在数据库表的一列中随机放置 253 行“M”和“F”,这可能吗?
示例:
Gender:
M
M
F
M
F
F
M
F
M
最佳答案
对于 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。
您可能可以播种 RAND函数具有像 Id 这样的值,但值的分布不会很好:比如首先 30-40% 都是 M,然后 30-40% 都是 F,然后再次是 M。
关于sql - 如何将随机字符插入到 SQL 数据库列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44925959/