我想向使用Microsoft SQL Server 2008 R2的T-SQL的查詢中的列添加一個隨機值。爲了做到這一點,我使用了一個子查詢並抽出一個隨機記錄。每次運行查詢時,它都會提取一個新的隨機記錄,但每行的值是相同的。使用子查詢來拉取隨機值,每次都顯示相同的值
如何爲每一行獲得新的隨機值?
樣品查詢:
SELECT column1,
(SELECT TOP 1 column1 as c2 FROM Table2 ORDER BY NewID())
FROM Table1
而表2的樣子
column1
value1
value2
value3
它總是返回列2相同的值,而不是爲每個表一個新的隨機記錄。
首先運行:
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認爲它是相關的。這將是非常低效的。這裏有什麼要求? – 2011-04-04 16:00:54
什麼是SQL Server 2010? – 2011-04-04 16:01:18
謝謝@PeterSchofield,我的意思是2008年r2。 – Lucas 2012-04-01 02:52:31