我不是最好的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