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

时间:2017-07-05 12:12:32

标签: sql sql-server

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

它的外观示例:

Gender:
M
M
F
M
F
F
M
F
M

3 个答案:

答案 0 :(得分:3)

对于MS SQL,您可以使用NEWIDCHECKSUM等功能:

  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