2009-10-23 45 views
1

這是我想做的事:如何移動相同的表內的同一列中的數據不循環

我試圖混淆數據,並創建用於文檔工作數據庫。我有一張我想混在一張表中的名字列表。

KEY FIRSTNAME 
135 CYNTHIA 
181 MARK 
186 MARGARET 
212 DESIVANITA 
506 AMY 
606 BRENDA 
628 KATHLEEN 
629 Johnna 
636 TAMARA 
652 KATHLEEN 

該表有大約5萬行。我想知道是否有方法混合名稱而不使用循環?

+0

你是什麼意思mix-向上。數據庫表是一個集合。它沒有秩序。 – dave 2009-10-23 20:29:39

+0

你想如何混淆這些名字?只是把它們混合成一個排列組合?還是其他技術? – 2009-10-23 20:31:33

+0

當我說混淆時,我的意思是把喬治的名字叫做特德和吉爾,邁克和比爾去辛迪等。 – user142253 2009-11-09 13:53:42

回答

4

我會建議創建假數據而不是混淆真實數據。使用虛假數據,您不可能暴露敏感信息。 Red Gate有一個漂亮的工具來創建測試數據,這使得使用各種類型的表格模式來生成逼真的假數據變得微不足道。

+0

+1提出一個不會重新發明車輪的解決方案。 – 2009-10-23 20:39:13

1

一種可能性是(假設你不介意重複的名稱):

DECLARE @T TABLE (ID INT, FirstNAme VARCHAR(10), newColumn VARCHAR(10)) 

INSERT INTO @T 
     (ID, FirstNAme) 
SELECT 135 ,'CYNTHIA' 
UNION ALL SELECT 181 ,'MARK' 
UNION ALL SELECT 186 ,'MARGARET' 
UNION ALL SELECT 212 ,'DESIVANITA' 
UNION ALL SELECT 506 ,'AMY' 

UPDATE @T 
SET NewColumn = (SELECT TOP 1 FirstName FROM @T t2 ORDER BY NEWID()) 

SELECT * 
FROM @t 
0

我想通過使用CTE和ROW_NUMBER()是可以做到的

相關問題