一尘不染

SQL Server 2012清单中的随机字串

sql

说我有3个值,’Bill’,’Steve’,’Jack’。我想用这些值随机更新表,例如

更新联系人设置的名字=(’Bill’,’Steve’,’Jack’),其中city =’NY’

如何将这些值随机化?

谢谢


阅读 172

收藏
2021-03-17

共1个答案

一尘不染

您可以使用以下技巧来做到这一点:

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引擎为每个外部行调用子查询。这是小提琴http://sqlfiddle.com/#!6/8ecca/22

2021-03-17