使用两个表随机化Sql查询

时间:2018-05-15 22:05:31

标签: sql vb.net

使用此sql查询,我可以随机化IDcolumn1Packett1Packett2并在DataGridView中显示结果。如何在此查询中添加另一个名为Packett3的列,并将其全部随机化。表2包含IDcolumn2Packett3。 我的问题:

Dim sql As String = String.Format(
    "SELECT Top {0} 
         IDcolumn1, 
         Packett1, 
         Packett2 
     FROM 
         MASTER
     ORDER BY
         NEWID()", rows)

1 个答案:

答案 0 :(得分:0)

可能是,效率最高但效果不错(经过测试!)

   select top(10) 
       IDcolumn1, 
       Packett1, 
       Packett2,
       IDcolumn2,
       Packett3
   From
       (select 
            ROW_NUMBER() OVER(ORDER BY newid() ASC) AS F1,  
            IDcolumn1, 
            Packett1, 
            Packett2 
        from Master) as t1 inner join
       (select  
            ROW_NUMBER() OVER(ORDER BY newid() ASC) AS F1,
            IDcolumn2,
            Packett3 
        from table2)  as t2 on t1.f1 = t2.f1

你看到的,我使用内联视图生成假id,可以从一个表到另一个表匹配。