データベーステーブルの列に253行の 'M'と 'F'をランダムに列に配置したいのですが、これは可能ですか?SQLデータベースの列にランダムな文字を挿入するにはどうすればよいですか?
それはのように見えるかもしれないものの例:
Gender:
M
M
F
M
F
F
M
F
M
データベーステーブルの列に253行の 'M'と 'F'をランダムに列に配置したいのですが、これは可能ですか?SQLデータベースの列にランダムな文字を挿入するにはどうすればよいですか?
それはのように見えるかもしれないものの例:
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()はそのGUIのハッシュを生成しますD
ABS()は、それが1または0
WARNING作ります!一部の人々はRAND機能を使用するように提案していますが、この特定のケースにはを使用しないでください。このようなクエリ:
UPDATE Users SET Gender = CASE WHEN (RAND() > 0.5) THEN 'M' ELSE 'F' END
は..あなたが潜在的にあなたがイドのようないくつかの値でRAND機能をすべての値MのいずれかまたはF
のいずれかをシードすることができましたが、値の分布ではないだろうということなります非常に良い:最初の30-40%のすべてのM、30-40%のすべてのF、そして再びM。
ありがとう、完璧に働いて、よく説明されています:) – GeorgeB
これを試して、 "M"をより支配的にしたい場合は、 "0.5"を減らして選ぶ機会を増やすことができます。
SELECT CASE WHEN (RAND() > 0.5) THEN 'M' ELSE 'F' END
RAND()を使用してテーブルを更新する場合、その値は常に同じになります。あなたはMまたはFの全列を持っています –
このアップデートを検討してください:UPDATEユーザーSET Gender =ケース(RAND()> 0.5)THEN 'M' ELSE 'F END –
それは更新に依存すると思います。これはループのために働きます。 –
RAND()関数を使用できます。
次のURLをお読みください: は、[1]
https://docs.microsoft.com/en-us/sql/t-sql/functions/rand-transact-sql
_RDBMS_は、あなたがターゲットとしている[ここにリンクの説明を入力しますか]? –
Microsoft SQL Server Management Studio – GeorgeB