假设我有 3 个值(value)观,Bill、Steve、Jack。我想用这些值随机更新表格,例如
更新联系人集名字 = ('Bill','Steve','Jack') 其中 city = 'NY'
如何随机化这些值?
谢谢
最佳答案
您可以使用以下技巧来做到这一点:
update c set name=ca.name
from contacts c
outer apply(select top 1 name
from (values('bill'),('steve'),('jack')) n(name)
where c.id = c.id order by newid())ca;
c.id = c.id
只是一个虚拟谓词,强制 SQL 引擎为每个外部行调用子查询。这是 fiddle http://sqlfiddle.com/#!6/8ecca/22
关于SQL Server 2012 列表中的随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200105/