我正在使用Microsoft SQL Server 2005.插入隨機選擇的記錄SQL
我創建了一個隨機記錄生成器,它將隨機插入10個記錄到臨時表中。臨時表中的記錄將用於更新內存中表中的記錄。
這裏是給我一些麻煩的陳述(假設臨時表已經創建)。
insert into #tempTable
select top (10 - @totalOverShort)
d.depositid, d.location, d.amount, d.count, d.user_add,
d.date_add, d.status, d.comments, d.subtotal_difference, d.count_difference, d.user_checked,
d.date_updated, d.ip_checked, newID() as randomColumn
from
closing_balance..cb_depositbag as d
left join
#tempTable as t on d.depositid <> t.depositid and d.location <> t.location
where
d.date_add between @weekPrior and @weekPriorNight and
d.status = 'R' and d.depositID <> t.depositID
order by
randomColumn
這條語句給我隨機生成的列,但有時(約1/10)我在臨時表中得到1個或多個副本。內存中的表格具有2部分密鑰,存儲ID和位置。我想說,如果沒有退出隨機選擇的(存款ID,位置)對,那麼將該記錄插入到臨時表中。有沒有另一種方法來做到這一點?我在想,存在重複的原因是因爲它將評估選擇語句10次以上,因爲它是隨機排序的,可能會導致重複。雖然我不確定。
在此先感謝。
我試過,但得到了下面的錯誤信息。 如果指定了SELECT DISTINCT,則ORDER BY項目必須出現在選擇列表中。 – Aaron 2009-11-11 21:09:41
@Aaron:哈哈!當然! – gbn 2009-11-11 21:12:48
..和更新的答案 – gbn 2009-11-11 21:15:53