sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2012 Náhodný řetězec ze seznamu

Můžete to udělat pomocí následujícího triku:

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 je pouze fiktivní predikát, který nutí sql engine volat poddotaz pro každý vnější řádek. Zde jsou housle http://sqlfiddle.com/#!6/8ecca/22



  1. Normalizace ztěžuje spojení napříč více tabulkami

  2. Jak funguje justify_interval() v PostgreSQL

  3. Vícenásobné poddotazy MySQL vs. celé dotazy

  4. Vraťte den, měsíc a rok v MySQL