2016-06-23 45 views
1

我有一个包含两列文本的表,我想随机化一列的数据。因此,例如:随机化SQL表的列数据

Text1 Text2 
--------------- 
ABC  DEF 
GHI  JKL 
MNO  PQR 
STU  VWX 

Text1 Text2 
--------------- 
ABC  JKL 
GHI  VWX 
MNO  DEF 
STU  PQR 

我是新来的SQL,并且对如何做到这一点没有任何线索。

提前致谢!

+0

把你的文章的标题为谷歌和启动那里。给它一些尝试,然后让我们知道你遇到了什么问题。 – dfundako

+0

[如何在SQL中随机选择行?]可能的重复(http://stackoverflow.com/questions/580639/how-to-randomly-select-rows-in-sql) – Edu

+0

@Edu非常接近那个问题,但不完全相同。 –

回答

0

试试这个:

示例数据:

IF OBJECT_ID('tempdb..#Text') IS NOT NULL 
    DROP TABLE #Text; 

CREATE TABLE #Text(Text1 VARCHAR(10) 
       , Text2 VARCHAR(10)); 

INSERT INTO #Text 
VALUES 
     ('ABC' 
    , 'DEF'), 
     ('GHI' 
    , 'JKL'), 
     ('MNO' 
    , 'PQR'), 
     ('STU' 
    , 'VWX'); 

QUERY:

SELECT Text1 
    , Text2 
FROM 
     (SELECT ROW_NUMBER() OVER(ORDER BY NEWID()) AS SNO 
      , Text1 
     FROM #Text) AS A 
     INNER JOIN 
       (SELECT ROW_NUMBER() OVER(ORDER BY NEWID()) AS SNO 
        , Text2 
       FROM #Text) AS B ON A.SNO = B.SNO; 

结果:

enter image description here