SQL Server 2012 リストからのランダムな文字列 質問する

SQL Server 2012 リストからのランダムな文字列 質問する

たとえば、Bill、Steve、Jackという3つの値があるとします。これらの値でテーブルをランダムに更新したいとします。

Update contacts 
set firstname = ('Bill','Steve','Jack') 
where city = 'NY'

これらの値をランダム化するにはどうすればいいでしょうか?

ありがとう

ベストアンサー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

おすすめ記事