首页 > 解决方案 > 使用两个表随机化 Sql 查询

问题描述

使用这个 sql 查询,我可以随机化IDcolumn1,Packett1Packett2DataGridView. 如何在此查询中添加Packett3从另一个表命名的其他列并将其随机化。表 2 包含IDcolumn2Packett3。我的查询:

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

标签: sqlvb.net

解决方案


可能不是最有效但有效(已测试!)

   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。


推荐阅读