2009-10-23 47 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()是可以做到的

相关问题