SQL Server 2012 列表中的随机字符串

标签 sql sql-server sql-server-2012

假设我有 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/

相关文章:

c# - 将 textbox.text 值与 SQL Server 中的值进行比较

php - mysqli_stmt::execute() 返回 false 并且语句未执行

sql - TOAD 将 &String 视为绑定(bind)变量

sql - 如何解决多部分标识符错误?

sql-server - 无法让 SQL Server 启动或通过 SSMS 连接到我的本地数据库引擎

sql-server - 无法远程连接到 Windows Server 2012 R2 上的 SQL Server 2014

sql-server - 在包含更新语句和 CTE 的存储过程中使用 Begin tran

symfony - 如何在 DQL 查询中更改 LockMode,在 SQL Server 的 Doctrine 2 中

SQL Server批量插入抛出请求超时错误?

sql-server - 将日志文件配置为位于 RAID 阵列的特定磁盘上