我不是最好的SQL,但我尽我所能来解决我的问题。我有一个充满了列(ID(PK,身份),Char,Serv,Random)的表格“just”。现在我想从该表中选择一个随机行并将其插入表“f_WinGet”中。到目前为止,我的所有程序都采取了这一步,但我总是在第二个表中获得重复项。从SQL Server表中选择唯一的随机行,但始终重复
第一个表:84行 二表:需要35随机出84
我已经尝试了很多其他方式,但我总是得到相同的结果。我所有的随机程序绑定到一个C#程序。到目前为止,所有的工作都很好,但我总是在我的表中有一些重复的行。
INSERT INTO f_TWinGet
SELECT TOP 1 Percent Char, Serv, Random
FROM (select distinct Char, Serv, Random from dbo.just) as derived1
ORDER BY CHECKSUM(NEWID())
这将是很好,如果任何人hase一个想法我怎么能解决我的问题。我仍在尝试,但我得到的所有结果总是相同的。
如果您插入相同的记录,这是因为您一直选择相同的记录。 'Top 1'不是一个随机函数,它只是选择结果集中的第1行 – CSharper
你说你只需要一行,但实际上你选择的是[TOP 1 PERCENT](http://msdn.microsoft.com /en-us/library/ms189463.aspx)。另外,如果'dbo.just'表中有很少的行,比不管使用了哪种随机化,在多次查询后仍然会有一些重复结束。 –
到目前为止,我展现了你所说的要点。我尝试每次单击按钮以选择1个随机行并将其传输到第二个表。到目前为止,您可以在datagridview中看到添加过程,因此需要按下按钮35x并始终获得一个随机行,但不一样,谁已经在第二个表中。我不需要从第一个表中的记录,所以我想在第一个表中摆脱选择的行,这样我不能得到相同的行两次,当我取下一个 – user3856495