SQL Server 如何在SQL中使用兰德()[已关闭]

nc1teljy  于 2023-02-15  发布在  其他
关注(0)|答案(1)|浏览(95)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

2天前关闭。
Improve this question
我想随机选择一列中的一行并改变值。我不太确定随机函数的作用。
更具体地说,我有一个包含名字的表,但我想从名字列中随机选择一个名字,并使用UPDATERAND()函数将其更改为我选择的另一个名字,它不能是NEWID()。
我正在使用SQL Server Express
我试着用

UPDATE table name 
SET column name1 = ‘new name’, column name2 = 'new name 2'
WHERE column name = (SELECT RAND()(column name-column name)+column name
from table name);
im9ewurl

im9ewurl1#

我们可以使用NEWID()来获取一个随机行,参见documentation,特别是D部分。
下面是如何使用它的示例:
创建包含一些示例数据的表:

CREATE TABLE yourtable (yourcolumn varchar(100));     
INSERT INTO yourtable VALUES ('A'),('B'),('C'),('D'),('E');

更新此表的任意一行:

UPDATE yourtable SET yourcolumn = 'HelloWorld'
WHERE yourcolumn = (SELECT TOP 1 yourcolumn FROM yourtable ORDER BY NEWID());

如果我们想将一个随机行中该列的值设置为另一行中的一个随机值,而不是硬编码字符串,我们可以使用NEWID()两次,如下所示:

UPDATE yourtable SET yourcolumn = 
(SELECT TOP 1 yourcolumn FROM yourtable ORDER BY NEWID())
WHERE yourcolumn = (SELECT TOP 1 yourcolumn FROM yourtable ORDER BY NEWID())

试用here

相关问题