如何将随机字符插入sql数据库列?

Geo*_*geB 5 sql sql-server

我想填充我的数据库表的一列,在列中随机放置253行'M'和'F',这可能吗?

它的外观示例:

Gender:
M
M
F
M
F
F
M
F
M
Run Code Online (Sandbox Code Playgroud)

Pav*_*yuk 5

对于 MS SQL,您可以使用NEWIDCHECKSUM函数,例如:

  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。