從SQL中抽取隨機數,並用游標遍歷

2021-05-22 14:33:17 字數 1468 閱讀 1987

--建立臨時表,隨機抽取2個發布產品的公司

select distinct top 2 companyuid,newid() productuid,'12345678901234567890' xhbrand,

80 xhprice,getdate() crtime into tb1

from [fariceo].[dbo].[ec_supplyinfo]

group by companyuid order by newid() --tb1事先不存在

--建立游標中需用的變數

declare

@companyuid uniqueidentifier,

@productuid uniqueidentifier,

@tempuid uniqueidentifier,

@xhbrand nvarchar(20)

--建立游標,遍歷抽取的公司

declare byd cursor for select companyuid from tb1

open byd

fetch next from byd into @companyuid

while @@fetch_status=0    

begin

--根據公司名在該公司所發布的產品中隨機找乙個產品

select distinct top 1 @productuid=productuid,@xhbrand=brand,@tempuid=newid() from [fariceo].[dbo].[ec_supplyinfo]

where companyuid=@companyuid order by newid()

--將該產品寫入臨時表中

update tb1 set productuid=@productuid,xhbrand=@xhbrand where companyuid=@companyuid

--繼續遍歷

fetch next from byd into @companyuid

end  

--關閉游標

close byd

--刪除游標  

deallocate byd

--將臨時表中的資料插入ec_byd_maininfo表中

insert [fariceo].[dbo].[ec_byd_maininfo]  select newid(),* from tb1

--檢視生成的資料

select tb1.*,com.companyname,pro.productname from tb1,

[fariceo].[dbo].[ec_company] com,

[fariceo].[dbo].[ec_product] pro

where tb1.companyuid = com.uid

and tb1.productuid = pro.uid

--刪除臨時表

drop table tb1

mysql中獲取表中隨機數實現隨機抽取

mysql中獲取表中隨機數實現隨機抽取近由於需要大概研究了一下mysql的隨機抽取實現方法。舉個例子,要從tablename表中隨機提取一條記錄,大家一般的寫法就是 select from tablename order by rand limit 1。但是,後來我查了一下mysql的官方手冊,裡面...

mysql中獲取表中隨機數實現隨機抽取

mysql中獲取表中隨機數實現隨機抽取 近由於需要大概研究了一下mysql的隨機抽取實現方法。舉個例子,要從tablename表中隨機提取一條記錄,大家一般的寫法就是 select from tablename order by rand limit 1。但是,後來我查了一下mysql的官方手冊,裡...

SQL中隨機數函式簡介

在sql server中,有個隨機函式rand 有不少新手可能不知道存在這個函式,現在簡單的介紹下 隨機函式 rand 在查詢分析器中執行 select rand 可以看到結果會是類似於這樣的隨機小數 0.36361513486289558,像這樣的小數在實際應用中用得不多,一般要取隨機數都會取隨機...