搜索SO會產生很多結果,描述如何從數據庫表中選擇隨機的行數據。不過,我的要求有點不同,因爲我希望以儘可能高效/隨機/有趣的方式從整個隨機行中選擇個人列。在SQL Server中隨機選擇行*每列的最佳方法
爲了更好地說明:我有一個很大的Customers表,並且我希望生成一堆虛構的演示客戶記錄,這些記錄不是真正的人。我想的只是從客戶表中隨機查詢,然後隨機與LastNames,地址,城市,州配對FirstNames等
因此,如果這是我真實的客戶數據(簡化):
FirstName LastName State
==========================
Sally Simpson SD
Will Warren WI
Mike Malone MN
Kelly Kline KS
然後我會生成一些記錄看起來像這樣的:
FirstName LastName State
==========================
Sally Warren MN
Kelly Malone SD
等等
我最初的方法有效,但它缺乏的是我希望的風采最終答案將提供。 (我與子查詢的重複性,並且該解決方案需要字段的已知/固定數量,因此是不能重複使用的事實尤其不滿。)
SELECT
FirstName = (SELECT TOP 1 FirstName FROM Customer ORDER BY newid()),
LastName= (SELECT TOP 1 LastNameFROM Customer ORDER BY newid()),
State = (SELECT TOP 1 State FROM Customer ORDER BY newid())
謝謝!
如果你說你想從你的表中選擇一個隨機列,對我來說,這似乎是你想要做的查詢,並不知道結果將是一個國家,名字或姓氏。我不知道該怎麼做,但它似乎也不是你想要的。 看來你*做*想要選擇隨機行。你只是想爲每一列不同的隨機行。對不起,除了建議你澄清你的問題之外,我無法幫助你。 – Jordi 2010-04-28 17:00:35
我認爲你們都是對的,因爲我並不是真的想要隨機專欄。這個概念很簡單(正如我的樣本表和樣本結果所示),但措辭使我無法理解。如何「隨機重新排列表中的單個列」?一旦我碰到最好的句子,我會編輯這個問題... – LesterDove 2010-04-28 18:12:44
其實,新編輯的標題看起來很完美 - 謝謝 – LesterDove 2010-04-28 18:20:57