【发布时间】:2023-03-18 15:33:01
【问题描述】:
我想使用 Microsoft SQL Server 2008 R2 的 T-SQL 向查询中的列添加随机值。为此,我使用子查询并拉取随机记录。每次我运行查询时,它都会拉出一条新的随机记录,但每一行的值都是相同的。
如何为每一行获取一个新的随机值?
示例查询:
SELECT column1,
(SELECT TOP 1 column1 as c2 FROM Table2 ORDER BY NewID())
FROM Table1
而 table2 看起来像
column1
value1
value2
value3
它总是为 column2 返回相同的值,而不是为每个表返回一个新的随机记录。
第一次运行:
column1, c2
1, value1
2, value1
3, value1
第二次运行:
column1, c2
1, value2
2, value2
3, value2
如何让 c2(子查询)为每一行提取一个新的随机记录?
理想场景:
column1, c2
1, value2
2, value1
3, value2
【问题讨论】:
-
您可能需要引用外部查询,以便 SQL Server 认为它是相关的。不过,这将是非常低效的。这里有什么要求?
-
谢谢@PeterSchofield,我的意思是 2008 r2。
标签: sql sql-server tsql random